diff --git a/sflphone-client-gnome/src/conference_obj.c b/sflphone-client-gnome/src/conference_obj.c
index 6212ee46ce3366907ae5c01f42f37c98fbc62f15..cf80cc373879330694f3da792d350c68b223d02f 100644
--- a/sflphone-client-gnome/src/conference_obj.c
+++ b/sflphone-client-gnome/src/conference_obj.c
@@ -76,6 +76,8 @@ void create_new_conference (conference_state_t state, const gchar* confID, confe
     new_conf->participant_list = NULL;
     new_conf->participant_number = NULL;
 
+    set_conference_timestamp(&new_conf->_time_start);
+
     *conf = new_conf;
 }
 
@@ -259,7 +261,7 @@ void create_conference_history_entry_from_serialized(gchar *timestamp, gchar **p
     gchar *time_stop = "";
     gchar *accountID = "";
     gchar *recordfile = "";
-    const gchar *confID = "conf_1234";
+    const gchar *confID = generate_call_id();
     
     DEBUG("Conference: Create a conference from serialized form");
  
@@ -310,7 +312,7 @@ static void process_conference_participant_from_serialized(gchar *participant, c
     gint tok = 0;
     
 
-    DEBUG("------------------------------- process_conference_participant_from_serialized");
+    DEBUG("Conference: Process participant from serialized form");
 
     ptr = g_strsplit(participant, delim, 2);
     while(ptr != NULL && (tok < 2)) {
@@ -318,9 +320,7 @@ static void process_conference_participant_from_serialized(gchar *participant, c
 	gchar *account = NULL;
 	token = 0;
 	numberaccount = *ptr;
-	DEBUG("HERE IS THE PROBLEM");
 	numberptr = g_strsplit(numberaccount, delimnumber, 2);
-	DEBUG("problem !!!");
 	while(numberptr != NULL && (token < 2)) {
 	    switch(token) {
 	 	case 0:
@@ -328,6 +328,11 @@ static void process_conference_participant_from_serialized(gchar *participant, c
 		    break;
 		case 1:
 		    account = *numberptr;
+		    int len = strlen(account);
+		    if(g_str_has_suffix(account, ";")) {
+		    	gchar *tmpchar = g_strdup(account);
+			g_strlcpy(account, tmpchar, len);
+		    }
 		    break;
 		default:
 		    break;
@@ -346,9 +351,7 @@ static void process_conference_participant_from_serialized(gchar *participant, c
 	calllist_add_history_call(tmp_call);
 	calllist_add_call(current_calls, tmp_call); 
 
-	DEBUG("BEFORE %s", call_id);
 	conference_add_participant(call_id, conf);
-	DEBUG("AFTER");
 	
 	ptr++;
     }
diff --git a/sflphone-common/src/managerimpl.cpp b/sflphone-common/src/managerimpl.cpp
index 9dc000fe697de764d56d66d2d168ee18f701582c..3cfa981f5f7820bc4c1d5e27345b33e8beb8024b 100644
--- a/sflphone-common/src/managerimpl.cpp
+++ b/sflphone-common/src/managerimpl.cpp
@@ -1337,6 +1337,8 @@ void ManagerImpl::createConfFromParticipantList(const std::vector< std::string >
 	// Manager methods may behave differently if the call id particip to a conference
 	conf->add(generatedCallID);
 
+	switchCall("");
+
 	// Create call
 	callSuccess = outgoingCall(account, generatedCallID, tostr, conf->getConfID());