Hi, There is a double up of some code in dix/events.c, function ReleaseActiveGrabs(), that may give trouble? at about line 1920 if (dev->deviceGrab.grab && SameClient(dev->deviceGrab.grab, client)) { (*dev->deviceGrab.DeactivateGrab)(dev); done = FALSE; } Thanks, Colin