diff --git a/gnome/src/eel-gconf-extensions.c b/gnome/src/eel-gconf-extensions.c
index c24251aefc227496388c094a5ed55a8128333cb4..99be9287350befeb8d8cf2b89aedcebcb6a04bbd 100644
--- a/gnome/src/eel-gconf-extensions.c
+++ b/gnome/src/eel-gconf-extensions.c
@@ -34,12 +34,10 @@
 
 static GConfClient *global_gconf_client = NULL;
 
-static void
-global_client_free(void)
+void eel_gconf_global_client_free(void)
 {
-    if (global_gconf_client == NULL) {
+    if (global_gconf_client == NULL)
         return;
-    }
 
     g_object_unref(G_OBJECT(global_gconf_client));
     global_gconf_client = NULL;
@@ -82,10 +80,8 @@ eel_gconf_client_get_global(void)
 
     }
 
-    if (global_gconf_client == NULL) {
+    if (global_gconf_client == NULL)
         global_gconf_client = gconf_client_get_default();
-        g_atexit(global_client_free);
-    }
 
     return global_gconf_client;
 }
diff --git a/gnome/src/eel-gconf-extensions.h b/gnome/src/eel-gconf-extensions.h
index d380387bea29a25ebf11d7a5a20bb6c299738ac7..e9139477759e3388c84881688bf62edbca1b0001 100644
--- a/gnome/src/eel-gconf-extensions.h
+++ b/gnome/src/eel-gconf-extensions.h
@@ -57,54 +57,52 @@ BEGIN_EXTERN_C
 
 #define EEL_GCONF_UNDEFINED_CONNECTION 0
 
-GConfClient *eel_gconf_client_get_global (void);
-gboolean     eel_gconf_handle_error (GError                **error);
-void         eel_gconf_set_boolean (const char             *key,
-                                    gboolean                boolean_value);
-gboolean     eel_gconf_get_boolean (const char             *key);
-int          eel_gconf_get_integer (const char             *key);
-void         eel_gconf_set_integer (const char             *key,
-                                    int                     int_value);
-gfloat       eel_gconf_get_float (const char             *key);
-void         eel_gconf_set_float (const char             *key,
-                                  gfloat                 float_value);
-char *       eel_gconf_get_string (const char             *key);
-void         eel_gconf_set_string (const char             *key,
-                                   const char             *string_value);
-GSList *     eel_gconf_get_string_list (const char             *key);
-void         eel_gconf_set_string_list (const char             *key,
-                                        const GSList           *string_list_value);
-gboolean     eel_gconf_is_default (const char             *key);
-gboolean     eel_gconf_monitor_add (const char             *directory);
-gboolean     eel_gconf_monitor_remove (const char             *directory);
-void         eel_gconf_suggest_sync (void);
-GConfValue*  eel_gconf_get_value (const char             *key);
-gboolean     eel_gconf_value_is_equal (const GConfValue       *a,
-                                       const GConfValue       *b);
-void         eel_gconf_set_value (const char *key,
-                                  const GConfValue *value);
-gboolean     eel_gconf_key_exists (const char *key);
-
-void         eel_gconf_value_free (GConfValue             *value);
-void         eel_gconf_unset (const char *key);
+GConfClient *eel_gconf_client_get_global(void);
+
+void eel_gconf_global_client_free(void);
+
+gboolean eel_gconf_handle_error(GError **error);
+
+void eel_gconf_set_boolean(const gchar *key, gboolean boolean_value);
+
+gboolean eel_gconf_get_boolean(const gchar *key);
+
+int eel_gconf_get_integer(const gchar *key);
+
+void eel_gconf_set_integer(const gchar *key, gint value);
+
+gfloat eel_gconf_get_float(const gchar *key);
+
+void eel_gconf_set_float(const gchar *key, gfloat value);
+
+gchar *eel_gconf_get_string(const gchar *key);
+void eel_gconf_set_string(const gchar *key, const gchar *value);
+GSList *eel_gconf_get_string_list (const gchar *key);
+void eel_gconf_set_string_list(const gchar *key, const GSList *value);
+gboolean eel_gconf_is_default(const gchar *key);
+gboolean eel_gconf_monitor_add(const gchar *directory);
+gboolean eel_gconf_monitor_remove(const gchar *directory);
+void eel_gconf_suggest_sync(void);
+GConfValue *eel_gconf_get_value(const gchar *key);
+gboolean eel_gconf_value_is_equal(const GConfValue *a, const GConfValue *b);
+void eel_gconf_set_value (const gchar *key, const GConfValue *value);
+gboolean eel_gconf_key_exists(const gchar *key);
+void eel_gconf_value_free(GConfValue *value);
+void eel_gconf_unset(const gchar *key);
 
 /* Functions which weren't part of the eel-gconf-extensions.h file from eel */
-GSList *eel_gconf_get_integer_list (const char *key);
-void eel_gconf_set_integer_list (const char *key,
-                                 const GSList *slist);
-void gpdf_notification_add (const char *key,
-                            GConfClientNotifyFunc notification_callback,
-                            gpointer callback_data,
-                            GList **notifiers);
-void gpdf_notification_remove (GList **notifiers);
-guint eel_gconf_notification_add (const char *key,
-                                  GConfClientNotifyFunc notification_callback,
-                                  gpointer callback_data);
-void eel_gconf_notification_remove (guint notification_id);
+GSList *eel_gconf_get_integer_list(const gchar *key);
+void eel_gconf_set_integer_list(const gchar *key, const GSList *slist);
+void gpdf_notification_add(const gchar *key, GConfClientNotifyFunc notification_callback,
+                           gpointer callback_data, GList **notifiers);
+void gpdf_notification_remove(GList **notifiers);
+guint eel_gconf_notification_add(const gchar *key,
+                                 GConfClientNotifyFunc notification_callback,
+                                 gpointer callback_data);
+void eel_gconf_notification_remove(guint notification_id);
 
 #ifdef __cplusplus
 END_EXTERN_C
 #endif
 
 #endif /* EEL_GCONF_EXTENSIONS_H */
-
diff --git a/gnome/src/main.c b/gnome/src/main.c
index 8a08c4ef7b2242a24448b57daee5f65035547686..9bb51e1dc2f1c57d088aec73305037352e7c24c1 100644
--- a/gnome/src/main.c
+++ b/gnome/src/main.c
@@ -129,6 +129,7 @@ main(int argc, char *argv[])
 
     shortcuts_destroy_bindings();
 
+    eel_gconf_global_client_free();
 OUT:
 #if !GTK_CHECK_VERSION(2,32,0)
     gdk_threads_leave();