diff --git a/gtk/conference.c b/gtk/conference.c
index 4d1567773d54cd7daee8d862aee8e737e2dab989..0feed47aff2213100159788f5d60daf0c652c10e 100644
--- a/gtk/conference.c
+++ b/gtk/conference.c
@@ -49,7 +49,7 @@ static void init_local_participant(GtkWidget *participant){
 static GtkWidget *get_conference_tab(GtkWidget *mw){
 	GtkWidget *box=(GtkWidget*)g_object_get_data(G_OBJECT(mw),"conference_tab");
 	if (box==NULL){
-		GtkWidget *box=gtk_vbox_new(FALSE,0);
+		box=gtk_vbox_new(FALSE,0);
 		GtkWidget *participant=linphone_gtk_create_widget("main","callee_frame");
 		gtk_box_set_homogeneous(GTK_BOX(box),TRUE);
 		init_local_participant(participant);
@@ -124,13 +124,15 @@ void linphone_gtk_terminate_conference_participant(LinphoneCall *call){
 void linphone_gtk_unset_from_conference(LinphoneCall *call){
 	GtkWidget *mw=linphone_gtk_get_main_window();
 	GtkWidget *box=(GtkWidget*)g_object_get_data(G_OBJECT(mw),"conference_tab");
-	GtkWidget *frame=find_conferencee_from_call(call);
+	GtkWidget *frame;
+	if (box==NULL) return; /*conference tab already destroyed*/
+	frame=find_conferencee_from_call(call);
 	GList *children;
 	if (frame){
 		gtk_widget_destroy(frame);
 	}
 	children=gtk_container_get_children(GTK_CONTAINER(box));
-	if (g_list_length(children)==1){
+	if (g_list_length(children)==2){
 		/*the conference is terminated */
 		gtk_widget_destroy(box);
 		g_object_set_data(G_OBJECT(mw),"conference_tab",NULL);
diff --git a/mediastreamer2 b/mediastreamer2
index a1dc3c6382774035cc66570ad6e659e3c864c493..c00221cbc2df87f320effb7e82ac1b95a604f6d7 160000
--- a/mediastreamer2
+++ b/mediastreamer2
@@ -1 +1 @@
-Subproject commit a1dc3c6382774035cc66570ad6e659e3c864c493
+Subproject commit c00221cbc2df87f320effb7e82ac1b95a604f6d7