--- xorg-server-1.0.1/hw/xfree86/common/xf86Xinput.c.orig 2005-10-21 15:06:13.000000000 -0400 +++ xorg-server-1.0.1/hw/xfree86/common/xf86Xinput.c 2006-05-20 12:19:29.000000000 -0400 @@ -937,15 +937,10 @@ /* modeled from xf86Events.c */ if (device->ptrfeed->ctrl.threshold) { if ((abs(dx) + abs(dy)) >= device->ptrfeed->ctrl.threshold) { - local->dxremaind = ((float)dx * (float)(device->ptrfeed->ctrl.num)) / - (float)(device->ptrfeed->ctrl.den) + local->dxremaind; - valuator[0] = (int)local->dxremaind; - local->dxremaind = local->dxremaind - (float)valuator[0]; - - local->dyremaind = ((float)dy * (float)(device->ptrfeed->ctrl.num)) / - (float)(device->ptrfeed->ctrl.den) + local->dyremaind; - valuator[1] = (int)local->dyremaind; - local->dyremaind = local->dyremaind - (float)valuator[1]; + valuator[0] = (dx * device->ptrfeed->ctrl.num) / + device->ptrfeed->ctrl.den; + valuator[1] = (dy * device->ptrfeed->ctrl.num) / + device->ptrfeed->ctrl.den; } } else if (dx || dy) {