After reading more of a related RedHat bug (https://bugzilla.redhat.com/show_bug.cgi?id=657726) it would seem that these crashes are in fact due to some bad messages coming back from xklavier or xinput, and gnome-settings-daemon not being able to handle them. Here is a recent stack trace: mike@hawty:~$ gdb gnome-settings-daemon GNU gdb (Ubuntu/Linaro 7.3-0ubuntu2) 7.3-2011.08 Copyright (C) 2011 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i686-linux-gnu". For bug reporting instructions, please see: ... Reading symbols from /usr/bin/gnome-settings-daemon...(no debugging symbols found)...done. (gdb) run Starting program: /usr/bin/gnome-settings-daemon [Thread debugging using libthread_db enabled] [New Thread 0xb7ddbb70 (LWP 3131)] [New Thread 0xb75dab70 (LWP 3132)] [New Thread 0xb6bffb70 (LWP 3133)] ** (gnome-settings-daemon:3128): WARNING **: Ignoring unknown module 'org.gnome.settings-daemon.plugins.ubuntuone' [New Thread 0xb63feb70 (LWP 3134)] [Thread 0xb75dab70 (LWP 3132) exited] [1316688537,000,xklavier.c:xkl_engine_start_listen/] The backend does not require manual layout management - but it is provided by the application Gdk-ERROR **: The program 'gnome-settings-daemon' received an X Window System error. This probably reflects a bug in the program. The error was 'BadMatch (invalid parameter attributes)'. (Details: serial 846 error_code 8 request_code 141 minor_code 22) (Note to programmers: normally, X errors are reported asynchronously; that is, you will receive the error a while after causing it. To debug your program, run it with the --sync command line option to change this behavior. You can then get a meaningful backtrace from your debugger if you break on the gdk_x_error() function.) Program received signal SIGTRAP, Trace/breakpoint trap. 0x00810e69 in g_logv () from /lib/i386-linux-gnu/libglib-2.0.so.0 (gdb) bt #0 0x00810e69 in g_logv () from /lib/i386-linux-gnu/libglib-2.0.so.0 #1 0x008111a3 in g_log () from /lib/i386-linux-gnu/libglib-2.0.so.0 #2 0x00a79ec9 in ?? () from /usr/lib/libgdk-3.so.0 #3 0x00a87c28 in ?? () from /usr/lib/libgdk-3.so.0 #4 0x0163d99a in xkl_process_error () from /usr/lib/libxklavier.so.16 #5 0x00b06d3b in _XError () from /usr/lib/i386-linux-gnu/libX11.so.6 #6 0x00b0390d in ?? () from /usr/lib/i386-linux-gnu/libX11.so.6 #7 0x00b048f7 in _XReply () from /usr/lib/i386-linux-gnu/libX11.so.6 #8 0x00ea8f3b in XGetFeedbackControl () from /usr/lib/i386-linux-gnu/libXi.so.6 #9 0x01845fcb in ?? () from /usr/lib/gnome-settings-daemon-3.0/libmouse.so #10 0x01847a6c in ?? () from /usr/lib/gnome-settings-daemon-3.0/libmouse.so #11 0x01847d77 in ?? () from /usr/lib/gnome-settings-daemon-3.0/libmouse.so #12 0x008041a0 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0 #13 0x008082ef in g_main_context_dispatch () from /lib/i386-linux-gnu/libglib-2.0.so.0 #14 0x00808a20 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0 #15 0x0080902b in g_main_loop_run () from /lib/i386-linux-gnu/libglib-2.0.so.0 #16 0x002a1795 in gtk_main () from /usr/lib/libgtk-3.so.0 #17 0x0804ad11 in main () (gdb) quit A debugging session is active. Inferior 1 [process 3128] will be killed. Quit anyway? (y or n) y Now let's list what xinput devices I have connected to my computer: mike@hawty:~$ xinput list ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ HP HP USB Laser Mouse id=10 [slave pointer (2)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] ↳ Power Button id=6 [slave keyboard (3)] ↳ Power Button id=7 [slave keyboard (3)] ↳ daskeyboard id=8 [slave keyboard (3)] ↳ daskeyboard id=9 [slave keyboard (3)] ↳ Western Digital My Book id=11 [slave keyboard (3)] What the hell? An external USB hard disk is reporting that it is a keyboard!!!! What happens if I disconnect it, then run gnome-settings-daemon again? root@hawty:~# umount /media/MyBook (unplugged it) root@hawty:~# xinput list ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ HP HP USB Laser Mouse id=10 [slave pointer (2)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] ↳ Power Button id=6 [slave keyboard (3)] ↳ Power Button id=7 [slave keyboard (3)] ↳ daskeyboard id=8 [slave keyboard (3)] ↳ daskeyboard id=9 [slave keyboard (3)] mike@hawty:~$ gnome-settings-daemon ** (gnome-settings-daemon:3408): WARNING **: Ignoring unknown module 'org.gnome.settings-daemon.plugins.ubuntuone' [1316689030,000,xklavier.c:xkl_engine_start_listen/] The backend does not require manual layout management - but it is provided by the application common-plugin-Message: checking whether we have a device for 4: yes common-plugin-Message: checking whether we have a device for 5: yes common-plugin-Message: checking whether we have a device for 6: yes common-plugin-Message: checking whether we have a device for 7: yes common-plugin-Message: checking whether we have a device for 8: yes common-plugin-Message: checking whether we have a device for 9: yes common-plugin-Message: checking whether we have a device for 10: yes Low and behold, no more crashes! So gsd really needs to trap these types of weird errors somehow.