diff --git a/src/plugins/platforms/xcb/qxcbdrag.cpp b/src/plugins/platforms/xcb/qxcbdrag.cpp
index dceac09be5a238d1dfc7d25d4943834451abedfd..91acb5de026e38bbf558086fa0fe0d0451c3d6b2 100644
--- a/src/plugins/platforms/xcb/qxcbdrag.cpp
+++ b/src/plugins/platforms/xcb/qxcbdrag.cpp
@@ -140,7 +140,6 @@ QXcbDrag::QXcbDrag(QXcbConnection *c) : QXcbObject(c)
     dropData = new QXcbDropData(this);
 
     init();
-    heartbeat = -1;
     cleanup_timer = -1;
 }
 
@@ -179,9 +178,6 @@ void QXcbDrag::startDrag()
 
     init();
 
-    heartbeat = startTimer(200);
-
-
     xcb_set_selection_owner(xcb_connection(), connection()->clipboard()->owner(),
                             atom(QXcbAtom::XdndSelection), connection()->time());
 
@@ -202,10 +198,6 @@ void QXcbDrag::startDrag()
 
 void QXcbDrag::endDrag()
 {
-    if (heartbeat != -1) {
-        killTimer(heartbeat);
-        heartbeat = -1;
-    }
     QBasicDrag::endDrag();
 }
 
@@ -485,11 +477,6 @@ void QXcbDrag::drop(const QMouseEvent *event)
 {
     QBasicDrag::drop(event);
 
-    if (heartbeat != -1) {
-        killTimer(heartbeat);
-        heartbeat = -1;
-    }
-
     if (!current_target)
         return;
 
@@ -1041,12 +1028,7 @@ void QXcbDrag::handleFinished(const xcb_client_message_event_t *event)
 
 void QXcbDrag::timerEvent(QTimerEvent* e)
 {
-    if (e->timerId() == heartbeat && source_sameanswer.isNull()) {
-        QPointF pos = QCursor::pos();
-        QMouseEvent me(QEvent::MouseMove, pos, pos, pos, Qt::LeftButton,
-                       QGuiApplication::mouseButtons(), QGuiApplication::keyboardModifiers());
-        move(&me);
-    } else if (e->timerId() == cleanup_timer) {
+    if (e->timerId() == cleanup_timer) {
         bool stopTimer = true;
         for (int i = 0; i < transactions.count(); ++i) {
             const Transaction &t = transactions.at(i);
diff --git a/src/plugins/platforms/xcb/qxcbdrag.h b/src/plugins/platforms/xcb/qxcbdrag.h
index cc74d85b511f0bac10980055d08ac2169a83b0c2..5678c2d3034bf51f14c25784f3781a672b7f142a 100644
--- a/src/plugins/platforms/xcb/qxcbdrag.h
+++ b/src/plugins/platforms/xcb/qxcbdrag.h
@@ -143,8 +143,6 @@ private:
     xcb_window_t current_proxy_target;
 
     QXcbScreen *current_screen;
-    // timer used when target wants "continuous" move messages (eg. scroll)
-    int heartbeat;
 
     // 10 minute timer used to discard old XdndDrop transactions
     enum { XdndDropTransactionTimeout = 600000 };