--- dix/getevents.c 2008-05-11 21:19:56.000000000 +0200 +++ dix/getevents.c.new 2008-05-11 21:21:09.000000000 +0200 @@ -347,7 +347,7 @@ for (i = first_valuator; i < final_valuator; i += 6, xv++, events++) { xv->type = DeviceValuator; xv->first_valuator = i; - xv->num_valuators = ((num_valuators - i) > 6) ? 6 : (num_valuators - i); + xv->num_valuators = ((num_valuators - i) > 6) ? 6 : (final_valuator - i); xv->deviceid = pDev->id; switch (final_valuator - i) { case 6: