diff -up gdm-2.20.1/gui/modules/keymouselistener.c.keymouselistener-segfault gdm-2.20.1/gui/modules/keymouselistener.c
--- gdm-2.20.1/gui/modules/keymouselistener.c.keymouselistener-segfault 2007-10-17 20:33:49.000000000 -0400
+++ gdm-2.20.1/gui/modules/keymouselistener.c 2007-10-17 21:07:58.000000000 -0400
@@ -158,13 +158,16 @@ init_xinput (GdkDisplay *display, GdkWin
{
#ifdef HAVE_XINPUT
XEventClass event_list[40];
- int i, j, number = 0, num_devices;
+ int i, j, number = 0, num_devices = 0;
XDeviceInfo *devices = NULL;
XDevice *device = NULL;
devices = XListInputDevices (GDK_DISPLAY_XDISPLAY (display),
&num_devices);
+ if (devices == NULL)
+ return;
+
if (debug_gestures)
syslog (LOG_WARNING, "checking %d input devices...", num_devices);