diff --git a/configure.in b/configure.in
index bff5777..f371741 100644
--- a/configure.in
+++ b/configure.in
@@ -255,16 +255,6 @@ for gdk_target in $gdk_targets; do
 		CFLAGS="$X_INCLUDES $CFLAGS"
 		LIBS="$X_LIBRARIES $LIBS"
 
-		XTEST_LIBS=""
-		enable_xtest=no
-		AC_CHECK_LIB(Xtst, XTestFakeKeyEvent,
-			XTEST_LIBS="-lX11 -lXtst $X_LIBRARIES"
-			enable_xtest=yes
-			AC_DEFINE(HAVE_XTEST, 1, [defined if you have XTest library]),
-			,
-			$X_LIBRARIES)
-		AC_SUBST(XTEST_LIBS)
-
 		X_LIBS=""
 
 		dnl Explicitely link against libX11 to avoid problems with crappy linkers
@@ -853,11 +843,6 @@ if test x$ENABLE_NAUTILUS = xyes ; then
 else
 	AC_MSG_NOTICE([   Nautilus properties page disabled])
 fi
-if test x$enable_xtest = xyes ; then
-	AC_MSG_NOTICE([** XTest (legacy screensaver) support enabled])
-else
-	AC_MSG_NOTICE([   XTest (legacy screensaver) support disabled])
-fi
 if test x$have_xfree = xyes ; then
 	AC_MSG_NOTICE([** XFree86 multimedia keys support enabled])
 else
diff --git a/lib/totem-scrsaver.c b/lib/totem-scrsaver.c
index f5ba2e1..053cb44 100644
--- a/lib/totem-scrsaver.c
+++ b/lib/totem-scrsaver.c
@@ -32,11 +32,6 @@
 
 #ifdef GDK_WINDOWING_X11
 #include <gdk/gdkx.h>
-#include <X11/keysym.h>
-
-#ifdef HAVE_XTEST
-#include <X11/extensions/XTest.h>
-#endif /* HAVE_XTEST */
 #endif /* GDK_WINDOWING_X11 */
 
 #include "totem-scrsaver.h"
@@ -74,10 +69,6 @@ struct TotemScrsaverPrivate {
 	int prefer_blanking;
 	int allow_exposures;
 
-	/* For use with XTest */
-	int keycode1, keycode2;
-	int *keycode;
-	gboolean have_xtest;
 };
 
 G_DEFINE_TYPE(TotemScrsaver, totem_scrsaver, G_TYPE_OBJECT)
@@ -227,7 +218,7 @@ static void
 screensaver_init_dbus (TotemScrsaver *scr)
 {
         g_dbus_proxy_new_for_bus (G_BUS_TYPE_SESSION,
-	                          G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES | G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START,
+	                          G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES,
 	                          NULL,
 	                          GS_SERVICE,
 	                          GS_PATH,
@@ -249,15 +240,6 @@ screensaver_finalize_dbus (TotemScrsaver *scr)
 static void
 screensaver_enable_x11 (TotemScrsaver *scr)
 {
-
-#ifdef HAVE_XTEST
-	if (scr->priv->have_xtest != FALSE)
-	{
-		g_source_remove_by_user_data (scr);
-		return;
-	}
-#endif /* HAVE_XTEST */
-
 	XLockDisplay (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()));
 	XSetScreenSaver (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()),
 			scr->priv->timeout,
@@ -267,62 +249,9 @@ screensaver_enable_x11 (TotemScrsaver *scr)
 	XUnlockDisplay (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()));
 }
 
-#ifdef HAVE_XTEST
-static gboolean
-fake_event (TotemScrsaver *scr)
-{
-	if (scr->priv->disabled)
-	{
-		/* If the video window isn't focused, don't send out the
-		 * events. Note that it probably breaks when popups are used
-		 * but we can't do much about that... */
-		if (scr->priv->window != NULL &&
-		    gtk_window_has_toplevel_focus (scr->priv->window) == FALSE)
-			return TRUE;
-
-		XLockDisplay (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()));
-		XTestFakeKeyEvent (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), *scr->priv->keycode,
-				True, CurrentTime);
-		XTestFakeKeyEvent (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), *scr->priv->keycode,
-				False, CurrentTime);
-		XUnlockDisplay (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()));
-		/* Swap the keycode */
-		if (scr->priv->keycode == &scr->priv->keycode1)
-			scr->priv->keycode = &scr->priv->keycode2;
-		else
-			scr->priv->keycode = &scr->priv->keycode1;
-	}
-
-	return TRUE;
-}
-#endif /* HAVE_XTEST */
-
 static void
 screensaver_disable_x11 (TotemScrsaver *scr)
 {
-
-#ifdef HAVE_XTEST
-	if (scr->priv->have_xtest != FALSE)
-	{
-		XLockDisplay (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()));
-		XGetScreenSaver(GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), &scr->priv->timeout,
-				&scr->priv->interval,
-				&scr->priv->prefer_blanking,
-				&scr->priv->allow_exposures);
-		XUnlockDisplay (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()));
-
-		if (scr->priv->timeout != 0) {
-			g_timeout_add_seconds (scr->priv->timeout / 2,
-					       (GSourceFunc) fake_event, scr);
-		} else {
-			g_timeout_add_seconds (XSCREENSAVER_MIN_TIMEOUT / 2,
-					       (GSourceFunc) fake_event, scr);
-		}
-
-		return;
-	}
-#endif /* HAVE_XTEST */
-
 	XLockDisplay (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()));
 	XGetScreenSaver(GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), &scr->priv->timeout,
 			&scr->priv->interval,
@@ -334,33 +263,6 @@ screensaver_disable_x11 (TotemScrsaver *scr)
 }
 
 static void
-screensaver_init_x11 (TotemScrsaver *scr)
-{
-#ifdef HAVE_XTEST
-	int a, b, c, d;
-
-	XLockDisplay (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()));
-	scr->priv->have_xtest = (XTestQueryExtension (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), &a, &b, &c, &d) == True);
-	if (scr->priv->have_xtest != FALSE)
-	{
-		scr->priv->keycode1 = XKeysymToKeycode (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), XK_Alt_L);
-		if (scr->priv->keycode1 == 0) {
-			g_warning ("scr->priv->keycode1 not existant");
-		}
-		scr->priv->keycode2 = XKeysymToKeycode (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), XK_Alt_R);
-		if (scr->priv->keycode2 == 0) {
-			scr->priv->keycode2 = XKeysymToKeycode (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), XK_Alt_L);
-			if (scr->priv->keycode2 == 0) {
-				g_warning ("scr->priv->keycode2 not existant");
-			}
-		}
-		scr->priv->keycode = &scr->priv->keycode1;
-	}
-	XUnlockDisplay (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()));
-#endif /* HAVE_XTEST */
-}
-
-static void
 screensaver_finalize_x11 (TotemScrsaver *scr)
 {
 	g_source_remove_by_user_data (scr);
@@ -459,11 +361,6 @@ totem_scrsaver_init (TotemScrsaver *scr)
 						 TotemScrsaverPrivate);
 
 	screensaver_init_dbus (scr);
-#ifdef GDK_WINDOWING_X11
-	screensaver_init_x11 (scr);
-#else
-#warning Unimplemented
-#endif
 }
 
 void
