diff -ur gnome-screensaver-2.28.0.orig/src/gnome-screensaver-preferences.c gnome-screensaver-2.28.0/src/gnome-screensaver-preferences.c
--- gnome-screensaver-2.28.0.orig/src/gnome-screensaver-preferences.c	2009-08-20 01:19:14.000000000 +0200
+++ gnome-screensaver-2.28.0/src/gnome-screensaver-preferences.c	2009-12-08 22:30:04.120990348 +0100
@@ -1624,6 +1624,24 @@
 
         gtk_init (&argc, &argv);
 
+        /* Correct errors in some gtkrc files. */
+        gtk_rc_parse_string ("\n"
+                             "   style \"gs-style\"\n"
+                             "   {\n"
+                             "      bg_pixmap[NORMAL] = \"<none>\"\n"
+                             "      bg_pixmap[INSENSITIVE] = \"<none>\"\n"
+                             "      bg_pixmap[ACTIVE] = \"<none>\"\n"
+                             "      bg_pixmap[PRELIGHT] = \"<none>\"\n"
+                             "      bg[NORMAL] = { 0.0, 0.0, 0.0 }\n"
+                             "      bg[INSENSITIVE] = { 0.0, 0.0, 0.0 }\n"
+                             "      bg[ACTIVE] = { 0.0, 0.0, 0.0 }\n"
+                             "      bg[PRELIGHT] = { 0.0, 0.0, 0.0 }\n"
+                             "   }\n"
+                             "   class \"GSWindow\" style  \"gs-style\"\n"
+                             "   class \"GtkDrawingArea\" style \"gs-style\"\n"
+                             "\n");
+
+
         job = gs_job_new ();
         theme_manager = gs_theme_manager_new ();
 
diff -ur gnome-screensaver-2.28.0.orig/src/gnome-screensaver.c gnome-screensaver-2.28.0/src/gnome-screensaver.c
--- gnome-screensaver-2.28.0.orig/src/gnome-screensaver.c	2009-08-20 01:19:14.000000000 +0200
+++ gnome-screensaver-2.28.0/src/gnome-screensaver.c	2009-12-08 22:30:04.120990348 +0100
@@ -92,6 +92,24 @@
                 exit (1);
         }
 
+        /* Correct errors in some gtkrc files. */
+        gtk_rc_parse_string ("\n"
+                             "   style \"gs-style\"\n"
+                             "   {\n"
+                             "      bg_pixmap[NORMAL] = \"<none>\"\n"
+                             "      bg_pixmap[INSENSITIVE] = \"<none>\"\n"
+                             "      bg_pixmap[ACTIVE] = \"<none>\"\n"
+                             "      bg_pixmap[PRELIGHT] = \"<none>\"\n"
+                             "      bg[NORMAL] = { 0.0, 0.0, 0.0 }\n"
+                             "      bg[INSENSITIVE] = { 0.0, 0.0, 0.0 }\n"
+                             "      bg[ACTIVE] = { 0.0, 0.0, 0.0 }\n"
+                             "      bg[PRELIGHT] = { 0.0, 0.0, 0.0 }\n"
+                             "   }\n"
+                             "   class \"GSWindow\" style  \"gs-style\"\n"
+                             "   class \"GtkDrawingArea\" style \"gs-style\"\n"
+                             "\n");
+
+
         error = NULL;
         if (! gs_monitor_start (monitor, &error)) {
                 if (error) {
diff -ur gnome-screensaver-2.28.0.orig/src/gs-window-x11.c gnome-screensaver-2.28.0/src/gs-window-x11.c
--- gnome-screensaver-2.28.0.orig/src/gs-window-x11.c	2009-08-20 01:19:14.000000000 +0200
+++ gnome-screensaver-2.28.0/src/gs-window-x11.c	2009-12-08 22:30:04.193433422 +0100
@@ -188,32 +188,6 @@
 }
 
 static void
-force_no_pixmap_background (GtkWidget *widget)
-{
-        static gboolean first_time = TRUE;
-
-        if (first_time) {
-                gtk_rc_parse_string ("\n"
-                                     "   style \"gs-theme-engine-style\"\n"
-                                     "   {\n"
-                                     "      bg_pixmap[NORMAL] = \"<none>\"\n"
-                                     "      bg_pixmap[INSENSITIVE] = \"<none>\"\n"
-                                     "      bg_pixmap[ACTIVE] = \"<none>\"\n"
-                                     "      bg_pixmap[PRELIGHT] = \"<none>\"\n"
-                                     "      bg[NORMAL] = { 0.0, 0.0, 0.0 }\n"
-                                     "      bg[INSENSITIVE] = { 0.0, 0.0, 0.0 }\n"
-                                     "      bg[ACTIVE] = { 0.0, 0.0, 0.0 }\n"
-                                     "      bg[PRELIGHT] = { 0.0, 0.0, 0.0 }\n"
-                                     "   }\n"
-                                     "   widget \"gs-window-drawing-area*\" style : highest \"gs-theme-engine-style\"\n"
-                                     "\n");
-                first_time = FALSE;
-        }
-
-        gtk_widget_set_name (widget, "gs-window-drawing-area");
-}
-
-static void
 clear_children (Window window)
 {
         Window            root;
@@ -2258,8 +2239,6 @@
         window->priv->drawing_area = gtk_drawing_area_new ();
         gtk_widget_show (window->priv->drawing_area);
         gtk_box_pack_start (GTK_BOX (window->priv->vbox), window->priv->drawing_area, TRUE, TRUE, 0);
-
-        force_no_pixmap_background (window->priv->drawing_area);
 }
 
 static void
