diff --git a/src/drawing_handler.cpp b/src/drawing_handler.cpp
index e4a73bb9a1387ead74bd9e788290b208457fae25..1b61c7f4b140b1e80fb32111e41d29d59ea2d4b8 100644
--- a/src/drawing_handler.cpp
+++ b/src/drawing_handler.cpp
@@ -42,6 +42,7 @@ DrawingHandler::~DrawingHandler() {
 	glDeleteBuffers(1, &vbo_);
 	glDeleteFramebuffers(1, &fbo_);
 }
+
 void DrawingHandler::update(Toolbox& tb) {
 	if (previous_mstate_ != tb.m_state) {
 		drawpairs_.clear();
@@ -54,7 +55,6 @@ void DrawingHandler::update(Toolbox& tb) {
 			DRAWERMESSAGE message = std::get<DRAWERMESSAGE>(m.message);
 			switch (message) {
 			case DRAWERMESSAGE::CLEAR:
-				/*Clearing the damping is taken care of by the WaveHandler*/
 				drawpairs_.clear();
 				m.handled = true;
 				break;
@@ -63,6 +63,10 @@ void DrawingHandler::update(Toolbox& tb) {
 			}
 		}
 	}
+	/*Catch dangling Drawers, no touches means no drawers*/
+	if (drawpairs_.size() > 0 && tb.current_touchIDs.size() == 0) {
+		drawpairs_.clear();
+	}
 	/*We can return here if MSTATE is not interesting*/
 	if (tb.m_state != static_cast<int>(MSTATE::DRAW) && tb.m_state != static_cast<int>(MSTATE::ERASE)) {
 		return;