diff --git a/src/slim_blockchain_handler.cpp b/src/slim_blockchain_handler.cpp
index 09a4de19b5584db8c1f7655253d1b722d6de4db1..2b479074d9a40a75e498e84c6eb4b145678f0a6b 100644
--- a/src/slim_blockchain_handler.cpp
+++ b/src/slim_blockchain_handler.cpp
@@ -6,14 +6,15 @@
 
 
 void SlimBlockchainHandler::update(Toolbox& tb) {
+	bool skip_events = false;
 	//can't be dragging if mstate changes
 	if (previous_mstate_ != tb.m_state) {
 		clear_blocks_();
+		skip_events = true;
 	}
 	//update tracked mstate
 	previous_mstate_ = tb.m_state;
 
-	bool skip_events = false;
 
 	/*Handle Messages*/
 	for (Message& m : tb.mailbox) {
@@ -31,6 +32,12 @@ void SlimBlockchainHandler::update(Toolbox& tb) {
 		}
 	}
 
+	//Catch dangling Blocks, if no touches, then no dragging
+	if (!skip_events && dragpairs_.size() > 0 && tb.current_touchIDs.size() == 0) {
+		clear_blocks_();
+		skip_events = true;
+	}
+
 	if (tb.m_state == static_cast<int>(MSTATE::IMMEDIATE) && !skip_events) {
 		/*Handle Events*/
 		for (Pevent& pev : tb.events) {