diff --git a/sflphone-client-gnome/src/contacts/calltree.c b/sflphone-client-gnome/src/contacts/calltree.c
index a5a715a19a1a07d751a23203bda23e301b41d624..f9ac4d05a1b8777fdb54602a00b6960b2d69db41 100644
--- a/sflphone-client-gnome/src/contacts/calltree.c
+++ b/sflphone-client-gnome/src/contacts/calltree.c
@@ -706,7 +706,33 @@ void calltree_remove_conference (calltab_t* tab, const conference_obj_t* conf)
 
     DEBUG("calltree_remove_conference %s\n", conf->_confID);
 
-    
+    GtkTreeIter iter;
+    GValue val;
+    conference_obj_t * iterCall;
+    GtkListStore* store = tab->store;
+
+    int nbChild = gtk_tree_model_iter_n_children(GTK_TREE_MODEL(store), NULL);
+    int i;
+    for( i = 0; i < nbChild; i++)
+    {
+        if(gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), &iter, NULL, i))
+        {
+            val.g_type = 0;
+            gtk_tree_model_get_value (GTK_TREE_MODEL(store), &iter, 2, &val);
+
+            iterCall = (conference_obj_t*) g_value_get_pointer(&val);
+            g_value_unset(&val);
+
+            if(iterCall == conf)
+            {
+                gtk_list_store_remove(store, &iter);
+            }
+        }
+    }
+    // callable_obj_t * selectedCall = calltab_get_selected_call(tab);
+    // if(selectedCall == c)
+    // calltab_select_call(tab, NULL);
+    toolbar_update_buttons();
     
 }
 
diff --git a/sflphone-client-gnome/src/contacts/conferencelist.c b/sflphone-client-gnome/src/contacts/conferencelist.c
index 2e416f7a63e97e9ff9ed3cccc7acb34a31f6d166..9dee60e481f979646486623414c20a86f5122d42 100644
--- a/sflphone-client-gnome/src/contacts/conferencelist.c
+++ b/sflphone-client-gnome/src/contacts/conferencelist.c
@@ -59,7 +59,6 @@ conferencelist_add(const conference_obj_t* conf)
     gchar* c = (gchar*)conferencelist_get(conf->_confID);
     if(!c)
     {
-	g_print("Conference id(s): %s\n", conf->_confID);
         g_queue_push_tail (conferenceQueue, (gpointer)conf);
     }
 }
@@ -78,6 +77,7 @@ conferencelist_remove (const gchar* conf)
 conference_obj_t* 
 conferencelist_get (const gchar* conf_id)
 {
+
     GList* c = g_queue_find_custom(conferenceQueue, conf_id, is_confID_confstruct);
     if (c)
     {
diff --git a/sflphone-client-gnome/src/dbus/dbus.c b/sflphone-client-gnome/src/dbus/dbus.c
index f1e56f2ef98068df9b690a8f329492c3dfe5aded..7a6fe42395779e1099a03841ffb6343d2255a150 100644
--- a/sflphone-client-gnome/src/dbus/dbus.c
+++ b/sflphone-client-gnome/src/dbus/dbus.c
@@ -233,14 +233,11 @@ conference_removed_cb (DBusGProxy *proxy UNUSED,
 	const gchar* confID,
         void * foo  UNUSED )
 {
-    DEBUG ("Conference removed\n");
+    DEBUG ("Conference removed %s\n", confID);
 
-    // sflphone_display_transfer_status("Transfer successfull");
     conference_obj_t * c = conferencelist_get(confID);
     calltree_remove_conference (current_calls, c);
-
     conferencelist_remove(c->_confID); 
-
 }
 
 
@@ -415,7 +412,7 @@ dbus_connect ()
             "conferenceAdded", G_CALLBACK(conference_added_cb), NULL, NULL);
 
     dbus_g_proxy_add_signal (callManagerProxy,
-            "conferenceRemoved", G_TYPE_INVALID);
+            "conferenceRemoved", G_TYPE_STRING, G_TYPE_INVALID);
     dbus_g_proxy_connect_signal (callManagerProxy,
             "conferenceRemoved", G_CALLBACK(conference_removed_cb), NULL, NULL);
 
diff --git a/sflphone-common/src/managerimpl.cpp b/sflphone-common/src/managerimpl.cpp
index fb760fd37c806effbdc4e7a1e71650df17869afd..8154ba3964d272226a8a59e7ffa1aadd3d8d6254 100644
--- a/sflphone-common/src/managerimpl.cpp
+++ b/sflphone-common/src/managerimpl.cpp
@@ -708,7 +708,8 @@ ManagerImpl::removeConference(const ConfID& conference_id)
 	_debug("ManagerImpl:: error cannot remove conference id: %s\n", conference_id.c_str());
 
     // broadcast a signal over dbus
-    _dbus->getCallManager()->conferenceRemoved(default_conf);
+    _debug("ManagerImpl:: broadcast call removed on dbus: %s\n", conference_id.c_str());
+    _dbus->getCallManager()->conferenceRemoved(conference_id);
 
 }