diff -up gnome-control-center-2.23.2/capplets/appearance/appearance-desktop.c.make-default gnome-control-center-2.23.2/capplets/appearance/appearance-desktop.c
--- gnome-control-center-2.23.2/capplets/appearance/appearance-desktop.c.make-default	2008-06-03 08:36:59.000000000 -0400
+++ gnome-control-center-2.23.2/capplets/appearance/appearance-desktop.c	2008-06-03 08:41:14.000000000 -0400
@@ -32,6 +32,9 @@
 #define GNOME_DESKTOP_USE_UNSTABLE_API
 #include <libgnomeui/gnome-bg.h>
 
+#include <dbus/dbus-glib.h>
+#include <polkit-gnome/polkit-gnome.h>
+
 enum {
   TARGET_URI_LIST,
   TARGET_BGIMAGE
@@ -907,6 +910,52 @@ wp_select_after_realize (GtkWidget *widg
   select_item (data, item, TRUE);
 }
 
+static void
+set_background (GtkAction *action, gpointer data)
+{
+  AppearanceData *adata = (AppearanceData *)data;
+  DBusGProxy *proxy;
+  DBusGConnection *connection;
+  GError *error;
+  char *keys[7] = {
+    "/desktop/gnome/background/picture_filename",
+    "/desktop/gnome/background/picture_opacity",
+    "/desktop/gnome/background/picture_options",
+    "/desktop/gnome/background/color_shading_type",
+    "/desktop/gnome/background/primary_color",
+    "/desktop/gnome/background/secondary_color",
+    NULL
+  };
+
+  gconf_client_suggest_sync (adata->client, NULL);
+
+  error = NULL;
+  connection = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error);
+  if (error != NULL) {
+    g_warning ("failed to get system bus connection: %s", error->message);
+    g_error_free (error);
+    return;
+  }
+
+  proxy = dbus_g_proxy_new_for_name (connection,
+                                     "org.gnome.GConf.Defaults",
+                                     "/",
+                                     "org.gnome.GConf.Defaults");
+  if (proxy == NULL) {
+    g_warning ("Cannot connect to defaults mechanism");
+    return;
+  }
+
+  dbus_g_proxy_call (proxy, "SetSystem",
+                     &error,
+                     G_TYPE_STRV, keys,
+                     G_TYPE_STRV, NULL,
+                     G_TYPE_INVALID,
+                     G_TYPE_INVALID);
+
+  g_object_unref (proxy);
+}
+
 void
 desktop_init (AppearanceData *data,
 	      const gchar **uris)
@@ -916,6 +965,9 @@ desktop_init (AppearanceData *data,
   GtkFileFilter *filter;
   const gchar *pictures;
   const gchar *start_dir;
+  PolKitAction *pk_action;
+  PolKitGnomeAction *action;
+  GtkWidget *widget, *box, *button;
 
   g_object_set (gtk_settings_get_default (), "gtk-tooltip-timeout", 500, NULL);
 
@@ -1084,6 +1136,25 @@ desktop_init (AppearanceData *data,
 
   g_signal_connect (data->wp_filesel, "update-preview",
                     (GCallback) wp_update_preview, data);
+
+ widget = glade_xml_get_widget (data->xml, "background_vbox");
+ box = gtk_hbox_new (FALSE, 0);
+ gtk_box_pack_end (GTK_BOX (widget), box, FALSE, FALSE, 0);
+
+  pk_action = polkit_action_new ();
+  polkit_action_set_action_id (pk_action, "org.gnome.gconf.defaults.set-default-background");
+
+  action = polkit_gnome_action_new_default ("set-system", 
+                                            pk_action,
+                                            _("Make Default"),
+                                            _("Set the current background as the system-wide default"));
+  g_object_set (action, "no-visible", FALSE, NULL);
+         
+  polkit_action_unref (pk_action);
+  button = polkit_gnome_action_create_button (action);
+  gtk_box_pack_end (GTK_BOX (box), button, FALSE, FALSE, 0);
+
+  g_signal_connect (action, "activate", G_CALLBACK (set_background), data);
 }
 
 void
diff -up gnome-control-center-2.23.2/capplets/appearance/Makefile.am.make-default gnome-control-center-2.23.2/capplets/appearance/Makefile.am
--- gnome-control-center-2.23.2/capplets/appearance/Makefile.am.make-default	2008-05-17 12:46:56.000000000 -0400
+++ gnome-control-center-2.23.2/capplets/appearance/Makefile.am	2008-06-03 08:42:05.000000000 -0400
@@ -42,7 +42,8 @@ gnome_appearance_properties_LDADD = \
 	$(top_builddir)/capplets/common/libcommon.la \
 	$(GNOMECC_CAPPLETS_LIBS) \
 	$(FONT_CAPPLET_LIBS) \
-	$(METACITY_LIBS)
+	$(METACITY_LIBS) \
+	$(POLKIT_GNOME_LIBS) 
 gnome_appearance_properties_LDFLAGS = -export-dynamic
 
 gladedir = $(pkgdatadir)/glade
@@ -53,6 +54,7 @@ INCLUDES = \
 	$(METACITY_CFLAGS) \
 	$(GNOMECC_CAPPLETS_CFLAGS) \
 	$(FONT_CAPPLET_CFLAGS) \
+	$(POLKIT_GNOME_CFLAGS) \
 	-DGNOMELOCALEDIR="\"$(datadir)/locale\"" \
 	-DGNOMECC_DATA_DIR="\"$(pkgdatadir)\"" \
 	-DGNOMECC_GLADE_DIR="\"$(gladedir)\"" \
diff -up gnome-control-center-2.23.2/configure.in.make-default gnome-control-center-2.23.2/configure.in
--- gnome-control-center-2.23.2/configure.in.make-default	2008-06-03 08:36:59.000000000 -0400
+++ gnome-control-center-2.23.2/configure.in	2008-06-03 08:36:59.000000000 -0400
@@ -104,6 +104,7 @@ PKG_CHECK_MODULES(METACITY, libmetacity-
 PKG_CHECK_MODULES(TYPING, glib-2.0 > 2.11 gconf-2.0 gtk+-2.0)
 PKG_CHECK_MODULES(LIBSOUNDS, gio-2.0 libgnome-2.0 libgnomeui-2.0)
 PKG_CHECK_MODULES(GSD_DBUS, gnome-settings-daemon)
+PKG_CHECK_MODULES(POLKIT_GNOME, polkit-gnome)
 
 gtk_lib_dir=`$PKG_CONFIG --variable libdir gtk+-2.0`
 gtk_binary_version=`$PKG_CONFIG --variable gtk_binary_version gtk+-2.0`
