diff -Naur xf86-input-mouse-1.2.3-orig/src/mouse.c xf86-input-mouse-1.2.3/src/mouse.c --- xf86-input-mouse-1.2.3-orig/src/mouse.c 2007-09-19 23:17:25.000000000 +0200 +++ xf86-input-mouse-1.2.3/src/mouse.c 2008-10-07 15:31:02.000000000 +0200 @@ -1623,6 +1623,13 @@ */ dz = ((signed char)(pBuf[5] << 1) + (signed char)(pBuf[6] << 1)) >> 1; + if (dz == 2) { + dw = 1; + dz = 0; + } else if (dz == -2) { + dw = -1; + dz = 0; + } buttons |= (int)(~pBuf[7] & 0x7f) << 3; } break;