diff --git a/src/quick/items/qquickwindow.cpp b/src/quick/items/qquickwindow.cpp
index f4334286fa43a9663160bf230464bd3050bbeb96..469ea4225c666b397d19b3164648bea0719c9488 100644
--- a/src/quick/items/qquickwindow.cpp
+++ b/src/quick/items/qquickwindow.cpp
@@ -1218,7 +1218,7 @@ bool QQuickWindowPrivate::deliverInitialMousePressEvent(QQuickItem *item, QMouse
             event->setAccepted(me->isAccepted());
             if (me->isAccepted())
                 return true;
-            if (mouseGrabberItem && !event->buttons())
+            if (mouseGrabberItem)
                 mouseGrabberItem->ungrabMouse();
         }
     }
diff --git a/tests/auto/quick/qquickmousearea/data/moveAndReleaseWithoutPress.qml b/tests/auto/quick/qquickmousearea/data/moveAndReleaseWithoutPress.qml
new file mode 100644
index 0000000000000000000000000000000000000000..6c68f0c7c8524694f883c787a2b13dad5675b4cf
--- /dev/null
+++ b/tests/auto/quick/qquickmousearea/data/moveAndReleaseWithoutPress.qml
@@ -0,0 +1,14 @@
+import QtQuick 2.0
+
+MouseArea {
+    width: 200
+    height: 200
+
+    property bool hadMove: false
+    property bool hadRelease: false
+
+    onPressed: mouse.accepted = false
+    onPositionChanged: hadMove = true
+    onReleased: hadRelease = true
+}
+
diff --git a/tests/auto/quick/qquickmousearea/tst_qquickmousearea.cpp b/tests/auto/quick/qquickmousearea/tst_qquickmousearea.cpp
index ffe7b5153751999cc9be311582a11bf5503d45bf..37ce0fd394987526beedfffeae32046a12d50784 100644
--- a/tests/auto/quick/qquickmousearea/tst_qquickmousearea.cpp
+++ b/tests/auto/quick/qquickmousearea/tst_qquickmousearea.cpp
@@ -88,6 +88,7 @@ private slots:
 #ifndef QT_NO_CURSOR
     void cursorShape();
 #endif
+    void moveAndReleaseWithoutPress();
 
 private:
     void acceptedButton_data();
@@ -1402,6 +1403,29 @@ void tst_QQuickMouseArea::cursorShape()
 }
 #endif
 
+void tst_QQuickMouseArea::moveAndReleaseWithoutPress()
+{
+    QQuickView *window = createView();
+
+    window->setSource(testFileUrl("moveAndReleaseWithoutPress.qml"));
+    window->show();
+    window->requestActivate();
+    QVERIFY(QTest::qWaitForWindowExposed(window));
+
+    QObject *root = window->rootObject();
+    QVERIFY(root);
+
+    QTest::mousePress(window, Qt::LeftButton, 0, QPoint(100,100));
+
+    QTest::mouseMove(window, QPoint(110,110), 50);
+    QTRY_COMPARE(root->property("hadMove").toBool(), false);
+
+    QTest::mouseRelease(window, Qt::LeftButton, 0, QPoint(110,110));
+    QTRY_COMPARE(root->property("hadRelease").toBool(), false);
+
+    delete window;
+}
+
 QTEST_MAIN(tst_QQuickMouseArea)
 
 #include "tst_qquickmousearea.moc"