diff --git a/src/imports/location/qquickgeomapgesturearea.cpp b/src/imports/location/qquickgeomapgesturearea.cpp
index 9541355cd10ad25b4e3d4035eeafd4fc02286f60..ccf360aadb644dc6c7888d7f9cfb8b57d2587744 100644
--- a/src/imports/location/qquickgeomapgesturearea.cpp
+++ b/src/imports/location/qquickgeomapgesturearea.cpp
@@ -672,8 +672,13 @@ void QQuickGeoMapGestureArea::handleTouchUngrabEvent()
 void QQuickGeoMapGestureArea::handleTouchEvent(QTouchEvent *event)
 {
     m_touchPoints.clear();
-    for (int i = 0; i < event->touchPoints().count(); ++i)
-        m_touchPoints << event->touchPoints().at(i);
+    m_mousePoint.reset();
+
+    for (int i = 0; i < event->touchPoints().count(); ++i) {
+        auto point = event->touchPoints().at(i);
+        if (point.state() != Qt::TouchPointReleased)
+            m_touchPoints << point;
+    }
     if (event->touchPoints().count() >= 2)
         event->accept();
     else