diff --git a/sflphone-gtk/src/configwindow.c b/sflphone-gtk/src/configwindow.c
index 6454459f7e5f8038e7231f68efef8a9eebef6262..a85aec923029e707aa5aa9059ba1a058e1f72cf2 100644
--- a/sflphone-gtk/src/configwindow.c
+++ b/sflphone-gtk/src/configwindow.c
@@ -27,6 +27,7 @@
 #include <gtk/gtk.h>
 
 /** Local variables */
+gboolean  dialogOpen = FALSE;
 GtkListStore *account_store;
 GtkWidget * addButton;
 GtkWidget * editButton;
@@ -36,31 +37,34 @@ account_t * selectedAccount;
 
 /** Fills the treelist with accounts */
 void 
-fill_account_list ()
+config_window_fill_account_list ()
 {
-	GtkTreeIter iter;
+  if(dialogOpen)
+  {
+  	GtkTreeIter iter;
 
-	gtk_list_store_clear(account_store);
-  int i;
-	for( i = 0; i < account_list_get_size(); i++)
-	{
-    account_t  * a = account_list_get_nth (i);
-    if (a)
-    {
-      gtk_list_store_append (account_store, &iter);
-  		      
-  		gtk_list_store_set(account_store, &iter,
-  				   0, g_hash_table_lookup(a->properties, ACCOUNT_ALIAS),  // Name
-  				   1, g_hash_table_lookup(a->properties, ACCOUNT_TYPE),   // Protocol
-  				   2, account_state_name(a->state),      // Status
-  				   3, a,                                 // Pointer
-  				   -1);
+  	gtk_list_store_clear(account_store);
+    int i;
+  	for( i = 0; i < account_list_get_size(); i++)
+  	{
+      account_t  * a = account_list_get_nth (i);
+      if (a)
+      {
+        gtk_list_store_append (account_store, &iter);
+    		      
+    		gtk_list_store_set(account_store, &iter,
+    				   0, g_hash_table_lookup(a->properties, ACCOUNT_ALIAS),  // Name
+    				   1, g_hash_table_lookup(a->properties, ACCOUNT_TYPE),   // Protocol
+    				   2, account_state_name(a->state),      // Status
+    				   3, a,                                 // Pointer
+    				   -1);
 
-  	}
-  } 
-  
-  gtk_widget_set_sensitive( GTK_WIDGET(editButton),   FALSE);
-  gtk_widget_set_sensitive( GTK_WIDGET(deleteButton), FALSE);
+    	}
+    } 
+    
+    gtk_widget_set_sensitive( GTK_WIDGET(editButton),   FALSE);
+    gtk_widget_set_sensitive( GTK_WIDGET(deleteButton), FALSE);
+  }
 }
 /**
  * Delete an account
@@ -224,7 +228,7 @@ create_accounts_tab()
 	
 	gtk_widget_show_all(ret);
 	
-	fill_account_list();
+	config_window_fill_account_list();
 
 	return ret;
 }
@@ -235,6 +239,8 @@ show_config_window ()
   GtkDialog * dialog;
   GtkWidget * notebook;
   GtkWidget * tab;
+ 
+  dialogOpen = TRUE;
   
   dialog = GTK_DIALOG(gtk_dialog_new_with_buttons ("Preferences",
                                         GTK_WINDOW(get_main_window()),
@@ -258,6 +264,8 @@ show_config_window ()
 	gtk_notebook_page_num(GTK_NOTEBOOK(notebook), tab);
   
   gtk_dialog_run (dialog);
+
+  dialogOpen = FALSE;
   
   gtk_widget_destroy (GTK_WIDGET(dialog));
 }
diff --git a/sflphone-gtk/src/configwindow.h b/sflphone-gtk/src/configwindow.h
index 111acaacb62bed4bc3a99bfb671dc483432fb98b..b341f4a00481c30a8af1128aa27973cba9fd8d9d 100644
--- a/sflphone-gtk/src/configwindow.h
+++ b/sflphone-gtk/src/configwindow.h
@@ -26,6 +26,6 @@
   * @brief The Preferences window.
   */
 void show_config_window ( );
-
+void config_window_fill_account_list ( );
 
 #endif 
diff --git a/sflphone-gtk/src/dbus.c b/sflphone-gtk/src/dbus.c
index 89c010253fc615153d799b691cd8ce42c8ea1ca5..5ea591b330f5e39a096b0945ebb465aae1635735 100644
--- a/sflphone-gtk/src/dbus.c
+++ b/sflphone-gtk/src/dbus.c
@@ -17,12 +17,13 @@
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
  
+#include <accountlist.h>
+#include <calllist.h>
 #include <callmanager-glue.h>
 #include <configurationmanager-glue.h>
-#include <calllist.h>
-#include <accountlist.h>
-#include <marshaller.h>
+#include <configwindow.h>
 #include <mainwindow.h>
+#include <marshaller.h>
 #include <sliders.h>
 
 #include <dbus.h>
@@ -142,7 +143,7 @@ accounts_changed_cb (DBusGProxy *proxy,
 {
   g_print ("Accounts changed\n");
   sflphone_fill_account_list();
-  // TODO reload list
+  config_window_fill_account_list();
 }
 
 gboolean