diff --git a/sflphone-client-gnome/src/accountlist.c b/sflphone-client-gnome/src/accountlist.c
index dee7315bea6cccbc18c5b702e45d84e90965ac3e..d73f3450c9f9d4cc926128daaf7133fc5fe07214 100644
--- a/sflphone-client-gnome/src/accountlist.c
+++ b/sflphone-client-gnome/src/accountlist.c
@@ -360,7 +360,9 @@ gboolean current_account_has_mailbox (void)
     current = account_list_get_current ();
 
     if (current) {
-        if (g_strcasecmp (g_hash_table_lookup (current->properties, ACCOUNT_MAILBOX), "") != 0)
+        gchar * account_mailbox = g_hash_table_lookup (current->properties, ACCOUNT_MAILBOX);
+
+        if (account_mailbox != NULL && g_strcasecmp (account_mailbox, "") != 0)
             return TRUE;
     }
 
diff --git a/sflphone-client-gnome/src/callable_obj.c b/sflphone-client-gnome/src/callable_obj.c
index fabe9045af8d987f17f85cbf3f806b0fd8cbc954..54e0f1226c662f1199743f9902f1093e51dc392b 100644
--- a/sflphone-client-gnome/src/callable_obj.c
+++ b/sflphone-client-gnome/src/callable_obj.c
@@ -436,11 +436,14 @@ gchar* serialize_history_entry (callable_obj_t *entry)
     // and the timestamps
     timestamp = convert_timestamp_to_gchar (entry->_time_stop);
 
+    gchar* peer_name = (entry->_peer_name == NULL || g_strcasecmp (entry->_peer_name,"") == 0) ? "empty": entry->_peer_name;
+    gchar* account_id = (entry->_accountID == NULL || g_strcasecmp (entry->_accountID,"") == 0) ? "empty": entry->_accountID;
+
     result = g_strconcat (history_state, separator,
                           entry->_peer_number, separator,
-                          g_strcasecmp (entry->_peer_name,"") ==0 ? "empty": entry->_peer_name, separator,
+                          peer_name, separator,
                           timestamp, separator,
-                          g_strcasecmp (entry->_accountID,"") ==0 ? "empty": entry->_accountID,
+                          account_id,
                           NULL);
 
     return result;
diff --git a/sflphone-client-gnome/src/config/accountconfigdialog.c b/sflphone-client-gnome/src/config/accountconfigdialog.c
index c907995a70a800616567fa64fec9f10ed2224c25..9deb3ebea4940eb087eb46bc826ef9fa42e77cc0 100644
--- a/sflphone-client-gnome/src/config/accountconfigdialog.c
+++ b/sflphone-client-gnome/src/config/accountconfigdialog.c
@@ -122,6 +122,21 @@ enum {
     COLUMN_CREDENTIAL_COUNT
 };
 
+/*
+ * The same window is used with different configurations
+ * so we need to reset some data to prevent side-effects
+ */
+static void reset()
+{
+    entryAlias = NULL;
+    protocolComboBox = NULL;
+    entryHostname = NULL;
+    entryUsername = NULL;
+    entryPassword = NULL;
+    entryUseragent = NULL;
+    entryMailbox = NULL;
+}
+
 /*
  * Display / Hide the password
  */
@@ -290,6 +305,7 @@ static GtkWidget* create_basic_tab (account_t **a)
         curUsername = g_hash_table_lookup (currentAccount->properties, ACCOUNT_USERNAME);
         // curRouteSet = g_hash_table_lookup(currentAccount->properties, ACCOUNT_ROUTE);
         curMailbox = g_hash_table_lookup (currentAccount->properties, ACCOUNT_MAILBOX);
+        curMailbox = curMailbox != NULL ? curMailbox : "";
         curUseragent = g_hash_table_lookup (currentAccount->properties, ACCOUNT_USERAGENT);
     }
 
@@ -1268,6 +1284,10 @@ void show_account_window (account_t * a)
     gint response;
     account_t *currentAccount;
 
+
+    // Firstly we reset
+    reset();
+
     // In case the published address is same than local,
     // we must resolve published address from interface name
     gchar * local_interface;