diff -rup xf86-input-synaptics-1.2.2/src/synaptics.c xf86-input-synaptics-1.2.2-drk/src/synaptics.c --- xf86-input-synaptics-1.2.2/src/synaptics.c 2010-03-26 02:13:40.000000000 -0300 +++ xf86-input-synaptics-1.2.2-drk/src/synaptics.c 2010-08-20 17:13:48.000000000 -0300 @@ -1641,7 +1641,9 @@ ComputeDeltas(SynapticsPrivate *priv, st dx = dx * dtime * para->trackstick_speed; dy = dy * dtime * para->trackstick_speed; } else if (moving_state == MS_TOUCHPAD_RELATIVE) { - dx = estimate_delta(hw->x, HIST(0).x, HIST(1).x, HIST(2).x); +#define REV para->right_edge +#define MRE(X) (X)>REV?REV:(X) + dx = estimate_delta(MRE(hw->x), MRE(HIST(0).x), MRE(HIST(1).x), MRE(HIST(2).x)); dy = estimate_delta(hw->y, HIST(0).y, HIST(1).y, HIST(2).y); if ((priv->tap_state == TS_DRAG) || para->edge_motion_use_always) {