--- xfree86-driver-synaptics-0.14.7~git20070517/synaptics.c 2007-05-19 17:56:20.000000000 +0200 +++ xfree86-driver-synaptics-patched/synaptics.c 2007-09-08 14:59:00.000000000 +0200 @@ -1158,11 +1158,7 @@ SetTapState(priv, TS_1, hw->millis); break; case TS_1: - if (move) { - SetMovingState(priv, MS_TOUCHPAD_RELATIVE, hw->millis); - SetTapState(priv, TS_MOVE, hw->millis); - goto restart; - } else if (is_timeout) { + if (is_timeout) { if (finger == FS_TOUCHED) { SetMovingState(priv, MS_TOUCHPAD_RELATIVE, hw->millis); } else if (finger == FS_PRESSED) { @@ -1173,6 +1169,10 @@ } else if (release) { SelectTapButton(priv, edge); SetTapState(priv, TS_2A, hw->millis); + } else if (move) { + SetMovingState(priv, MS_TOUCHPAD_RELATIVE, hw->millis); + SetTapState(priv, TS_MOVE, hw->millis); + goto restart; } break; case TS_MOVE: