--- 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,11 @@ 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"); + if (schemas != NULL) { + 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;