diff -Nurd -x'*~' gnome-settings-daemon-2.28.1.orig/configure gnome-settings-daemon-2.28.1/configure
--- gnome-settings-daemon-2.28.1.orig/configure	2009-10-19 10:04:26.000000000 -0400
+++ gnome-settings-daemon-2.28.1/configure	2016-06-08 04:00:03.000000000 -0400
@@ -20351,6 +20351,8 @@
 
 
 ALL_X_LIBS="$X_LIBS $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS"
+SETTINGS_PLUGIN_CFLAGS="${SETTINGS_PLUGIN_CFLAGS} ${X_CFLAGS}"
+SETTINGS_PLUGIN_LIBS="${SETTINGS_PLUGIN_LIBS} ${X_LIBS} -lX11 ${INTLLIBS}"
 
 
 have_xinput=no
diff -Nurd -x'*~' gnome-settings-daemon-2.28.1.orig/gnome-settings-daemon/Makefile.in gnome-settings-daemon-2.28.1/gnome-settings-daemon/Makefile.in
--- gnome-settings-daemon-2.28.1.orig/gnome-settings-daemon/Makefile.in	2009-10-19 10:04:27.000000000 -0400
+++ gnome-settings-daemon-2.28.1/gnome-settings-daemon/Makefile.in	2010-03-02 22:48:32.000000000 -0500
@@ -359,7 +359,7 @@
 
 gnome_settings_daemon_LDADD = \
 	libgsd-profile.la		\
-	$(SETTINGS_DAEMON_LIBS)
+	$(SETTINGS_DAEMON_LIBS) -lintl
 
 EXTRA_DIST = \
 	$(Dbusapi_DATA)			\
diff -Nurd -x'*~' gnome-settings-daemon-2.28.1.orig/plugins/keyboard/gsd-keyboard-xkb.c gnome-settings-daemon-2.28.1/plugins/keyboard/gsd-keyboard-xkb.c
--- gnome-settings-daemon-2.28.1.orig/plugins/keyboard/gsd-keyboard-xkb.c	2009-10-19 09:50:55.000000000 -0400
+++ gnome-settings-daemon-2.28.1/plugins/keyboard/gsd-keyboard-xkb.c	2010-03-03 00:10:48.000000000 -0500
@@ -526,7 +526,9 @@
 	if (!inited_ok)
 		return;
 
-	xkl_engine_stop_listen (xkl_engine);
+	xkl_engine_stop_listen (xkl_engine,
+				XKLL_MANAGE_LAYOUTS |
+				XKLL_MANAGE_WINDOW_STATES);
 
 	gdk_window_remove_filter (NULL,
 				  (GdkFilterFunc)
diff -Nurd -x'*~' gnome-settings-daemon-2.28.1.orig/plugins/mouse/gsd-mouse-manager.c gnome-settings-daemon-2.28.1/plugins/mouse/gsd-mouse-manager.c
--- gnome-settings-daemon-2.28.1.orig/plugins/mouse/gsd-mouse-manager.c	2009-09-21 06:24:02.000000000 -0400
+++ gnome-settings-daemon-2.28.1/plugins/mouse/gsd-mouse-manager.c	2010-03-03 00:58:19.000000000 -0500
@@ -84,7 +84,9 @@
 static void     gsd_mouse_manager_init        (GsdMouseManager      *mouse_manager);
 static void     gsd_mouse_manager_finalize    (GObject             *object);
 static void     set_mouse_settings            (GsdMouseManager      *manager);
+#ifdef HAVE_X11_EXTENSIONS_XINPUT_H
 static XDevice* device_is_touchpad            (XDeviceInfo deviceinfo);
+#endif
 
 G_DEFINE_TYPE (GsdMouseManager, gsd_mouse_manager, G_TYPE_OBJECT)
 
@@ -460,6 +462,7 @@
                                0, 0, motion_threshold);
 }
 
+#ifdef HAVE_X11_EXTENSIONS_XINPUT_H
 static XDevice*
 device_is_touchpad (XDeviceInfo deviceinfo)
 {
@@ -494,6 +497,7 @@
         XCloseDevice (GDK_DISPLAY (), device);
         return NULL;
 }
+#endif
 
 static int
 set_disable_w_typing (GsdMouseManager *manager, gboolean state)
@@ -539,6 +543,7 @@
         return 0;
 }
 
+#ifdef HAVE_X11_EXTENSIONS_XINPUT_H
 static int
 set_tap_to_click (gboolean state)
 {
@@ -716,6 +721,7 @@
         XFreeDeviceList (devicelist);
         return 0;
 }
+#endif
 
 static void
 set_locate_pointer (GsdMouseManager *manager,
@@ -818,9 +824,11 @@
         set_motion_threshold (manager, gconf_client_get_int (client, KEY_MOTION_THRESHOLD, NULL));
 
         set_disable_w_typing (manager, gconf_client_get_bool (client, KEY_TOUCHPAD_DISABLE_W_TYPING, NULL));
+#ifdef HAVE_X11_EXTENSIONS_XINPUT_H
         set_tap_to_click (gconf_client_get_bool (client, KEY_TAP_TO_CLICK, NULL));
         set_edge_scroll (gconf_client_get_int (client, KEY_SCROLL_METHOD, NULL));
         set_horiz_scroll (gconf_client_get_bool (client, KEY_PAD_HORIZ_SCROLL, NULL));
+#endif
 
         g_object_unref (client);
 }
@@ -846,6 +854,7 @@
         } else if (! strcmp (entry->key, KEY_TOUCHPAD_DISABLE_W_TYPING)) {
                 if (entry->value->type == GCONF_VALUE_BOOL)
                         set_disable_w_typing (manager, gconf_value_get_bool (entry->value));
+#ifdef HAVE_X11_EXTENSIONS_XINPUT_H
         } else if (! strcmp (entry->key, KEY_TAP_TO_CLICK)) {
                 if (entry->value->type == GCONF_VALUE_BOOL)
                         set_tap_to_click (gconf_value_get_bool (entry->value));
@@ -857,6 +866,7 @@
         } else if (! strcmp (entry->key, KEY_PAD_HORIZ_SCROLL)) {
                 if (entry->value->type == GCONF_VALUE_BOOL)
                         set_horiz_scroll (gconf_value_get_bool (entry->value));
+#endif
         } else if (! strcmp (entry->key, KEY_LOCATE_POINTER)) {
                 if (entry->value->type == GCONF_VALUE_BOOL) {
                         set_locate_pointer (manager, gconf_value_get_bool (entry->value));
@@ -928,9 +938,11 @@
                                 gconf_client_get_bool (client, KEY_DELAY_ENABLE, NULL));
 
         set_disable_w_typing (manager, gconf_client_get_bool (client, KEY_TOUCHPAD_DISABLE_W_TYPING, NULL));
+#ifdef HAVE_X11_EXTENSIONS_XINPUT_H
         set_tap_to_click (gconf_client_get_bool (client, KEY_TAP_TO_CLICK, NULL));
         set_edge_scroll (gconf_client_get_int (client, KEY_SCROLL_METHOD, NULL));
         set_horiz_scroll (gconf_client_get_bool (client, KEY_PAD_HORIZ_SCROLL, NULL));
+#endif
 
         g_object_unref (client);
 
