Same here on a Toshiba M30 laptop. This use to work on other Linux distros One solution for this, is to change the refresh rate of the mouse. To do this become root (su -) then run: modprobe psmouse rate=40 But this does not work in the latest Dapper Kernel. Here is a old fix for it 1. Download the latest kernel source 2. then open up the file ./drivers/input/mouse/psmouse-base.c with your favorite editor. 3. Find this section in the code: (More recent kernels will have different code) /* * Try Synaptics TouchPad */ if (psmouse_max_proto > PSMOUSE_PS2 && synaptics_detect(psmouse)) { synaptics_hardware = 1; psmouse->vendor = "Synaptics"; psmouse->name = "TouchPad"; if (psmouse_max_proto > PSMOUSE_IMEX) { if (synaptics_init(psmouse) == 0) return PSMOUSE_SYNAPTICS; /* * Some Synaptics touchpads can emulate extended protocols (like IMPS/2). * Unfortunately Logitech/Genius probes confuse some firmware versions so * we'll have to skip them. */ psmouse_max_proto = PSMOUSE_IMEX; } } And replace it with this: /* * Try Synaptics TouchPad */ /* if (psmouse_max_proto > PSMOUSE_PS2 && synaptics_detect(psmouse)) { synaptics_hardware = 1; psmouse->vendor = "Synaptics"; psmouse->name = "TouchPad"; if (psmouse_max_proto > PSMOUSE_IMEX) { if (synaptics_init(psmouse) == 0) return PSMOUSE_SYNAPTICS; */ /* * Some Synaptics touchpads can emulate extended protocols (like IMPS/2). * Unfortunately Logitech/Genius probes confuse some firmware versions so * we'll have to skip them. */ /* psmouse_max_proto = PSMOUSE_IMEX; } } */ (Basically the entire if statement has been commented out) 4. Now open up the file ./drivers/input/keyboard/atkbd.c 5. Find this section in the code: switch (atkbd->keycode[code]) { case ATKBD_KEY_NULL: break; case ATKBD_KEY_UNKNOWN: printk(KERN_WARNING "atkbd.c: Unknown key %s (%s set %d, code %#x on %s).n", atkbd->release ? "released" : "pressed", atkbd->translated ? "translated" : "raw", atkbd->set, code, serio->phys); if (atkbd->translated && atkbd->set == 2 && code == 0x7a) printk(KERN_WARNING "atkbd.c: This is an XFree86 bug. It shouldn't access hardware directly.n"); else printk(KERN_WARNING "atkbd.c: Use 'setkeycodes %s%02x ' to make it known.n",code & 0x80 ? "e0" : "", code & 0x7f); break; case ATKBD_SCR_1: scroll = 1 - atkbd->release * 2; break; case ATKBD_SCR_2: scroll = 2 - atkbd->release * 4; break; case ATKBD_SCR_4: scroll = 4 - atkbd->release * 8; break; case ATKBD_SCR_8: scroll = 8 - atkbd->release * 16; break; case ATKBD_SCR_CLICK: click = !atkbd->release; break; And replace it with this: switch (atkbd->keycode[code]) { case ATKBD_KEY_NULL: break; /* case ATKBD_KEY_UNKNOWN: printk(KERN_WARNING "atkbd.c: Unknown key %s (%s set %d, code %#x on %s).n", atkbd->release ? "released" : "pressed", atkbd->translated ? "translated" : "raw", atkbd->set, code, serio->phys); if (atkbd->translated && atkbd->set == 2 && code == 0x7a) printk(KERN_WARNING "atkbd.c: This is an XFree86 bug. It shouldn't access hardware directly.n"); else printk(KERN_WARNING "atkbd.c: Use 'setkeycodes %s%02x ' to make it known.n",code & 0x80 ? "e0" : "", code & 0x7f); break; */ case ATKBD_SCR_1: scroll = 1 - atkbd->release * 2; break; case ATKBD_SCR_2: scroll = 2 - atkbd->release * 4; break; case ATKBD_SCR_4: scroll = 4 - atkbd->release * 8; break; case ATKBD_SCR_8: scroll = 8 - atkbd->release * 16; break; case ATKBD_SCR_CLICK: click = !atkbd->release; break; (Basically commenting out the second switch case) 6. Now recompile the kernel. A really good guide for re-compiling the kernel with debian can be found at NewbieDoc