--- ../xorg-server-1.0.2-orig/hw/xfree86/common/xf86Events.c 2005-11-08 01:33:28.000000000 -0500 +++ hw/xfree86/common/xf86Events.c 2006-07-11 21:32:13.000000000 -0400 @@ -1165,7 +1165,9 @@ (xf86Info.kbdEvents)(); pInfo = xf86InputDevs; while (pInfo) { - if (pInfo->read_input && pInfo->fd >= 0 && + if (pInfo->read_input && pInfo->fd == -42) { + pInfo->read_input(pInfo); + } else if (pInfo->read_input && pInfo->fd >= 0 && (FD_ISSET(pInfo->fd, &devicesWithInput) != 0)) { int sigstate = xf86BlockSIGIO();