Index: /trunk/src/VBox/Additions/x11/vboxmouse/vboxmouse_15.c
===================================================================
--- /trunk/src/VBox/Additions/x11/vboxmouse/vboxmouse_15.c	(revision 30441)
+++ /trunk/src/VBox/Additions/x11/vboxmouse/vboxmouse_15.c	(revision 30442)
@@ -55,4 +55,5 @@
 #include <errno.h>
 #include <fcntl.h>
+#include <unistd.h>
 
 #include "product-generated.h"
@@ -63,4 +64,7 @@
     uint32_t cx, cy, fFeatures;
 
+    /* Read a byte from the device to acknowledge the event */
+    char c;
+    read(pInfo->fd, &c, 1);
     /* The first test here is a workaround for an apparent bug in Xorg Server 1.5 */
     if (
@@ -79,14 +83,6 @@
         cy = (cy * screenInfo.screens[0]->height) / 65535;
 #endif
-        /* The X server is calling this function even if only a button was
-         * pressed. old_x/old_y seem to be not used by the server code. */
-        if (   (uint32_t)pInfo->old_x != cx
-            || (uint32_t)pInfo->old_y != cy)
-        {
-            /* send absolute movement */
-            xf86PostMotionEvent(pInfo->dev, 1, 0, 2, cx, cy);
-            pInfo->old_x = cx;
-            pInfo->old_y = cy;
-        }
+        /* send absolute movement */
+        xf86PostMotionEvent(pInfo->dev, 1, 0, 2, cx, cy);
     }
 }
