--- gdm-2.30.7/common/gdm-settings-direct.c-orig	2012-06-22 14:48:05.534169655 -0500
+++ gdm-2.30.7/common/gdm-settings-direct.c	2012-06-22 14:49:07.061484091 -0500
@@ -232,7 +232,9 @@ gdm_settings_direct_init (GdmSettings *s
         g_return_val_if_fail (file != NULL, FALSE);
         g_return_val_if_fail (root != NULL, FALSE);
 
-        g_assert (schemas == NULL);
+        g_debug ("Settings Direct Init");
+        g_hash_table_unref (schemas);
+        schemas = NULL;
 
         if (! gdm_settings_parse_schemas (file, root, &list)) {
                 g_warning ("Unable to parse schemas");
--- gdm-2.30.7/daemon/main.c-orig	2012-06-22 14:47:53.019004949 -0500
+++ gdm-2.30.7/daemon/main.c	2012-06-22 14:51:14.792138203 -0500
@@ -553,9 +553,17 @@ signal_cb (int      signo,
 
         case SIGHUP:
                 g_debug ("Got HUP signal");
-                /* FIXME:
-                 * Reread config stuff like system config files, VPN service files, etc
+                /* Reread config stuff like system config files, VPN service
+                 * files, etc
                  */
+                g_object_unref (settings);
+                settings = gdm_settings_new ();
+                if (settings != NULL) {
+                        if (! gdm_settings_direct_init (settings, GDMCONFDIR "/gdm.schemas", "/")) {
+                                g_warning ("Unable to initialize settings");
+                        }
+                }
+
                 ret = TRUE;
 
                 break;
