diff --git a/sflphone-client-gnome/src/contacts/calltab.c b/sflphone-client-gnome/src/contacts/calltab.c
index f832d6c561f5c65baa091b0e13b80c1c48d2cfe6..b8376f4a9cb7e99d5b7bab626bfeaa4f46567e2c 100644
--- a/sflphone-client-gnome/src/contacts/calltab.c
+++ b/sflphone-client-gnome/src/contacts/calltab.c
@@ -50,6 +50,7 @@ calltab_select_call (calltab_t* tab, callable_obj_t * c )
 {
     tab->selectedType = A_CALL;
     tab->selectedCall = c;
+    current_calls->selectedConf = NULL;
 }
 
 
@@ -58,6 +59,7 @@ calltab_select_conf (conference_obj_t * c )
 {
     current_calls->selectedType = A_CONFERENCE;
     current_calls->selectedConf = c;
+    current_calls->selectedCall = NULL;
 }
 
 gint
diff --git a/sflphone-client-gnome/src/contacts/calltree.c b/sflphone-client-gnome/src/contacts/calltree.c
index fd84153eba3290718b1788fc8d8627db91951b2e..c01a3e890731593e65ef8afa698220240ec42a4d 100644
--- a/sflphone-client-gnome/src/contacts/calltree.c
+++ b/sflphone-client-gnome/src/contacts/calltree.c
@@ -116,9 +116,12 @@ call_selected_cb(GtkTreeSelection *sel, void* data UNUSED )
 
 			selected_call_id = selected_conf->_confID;
 			selected_path = string_path;
+			selected_call = NULL;
 
 		}
 
+		DEBUG("  selected_path %s, selected_call_id %s, selected_path_depth %i\n", selected_path, selected_call_id, selected_path_depth);
+
 	}
 	else
 	{
@@ -133,12 +136,16 @@ call_selected_cb(GtkTreeSelection *sel, void* data UNUSED )
 
 		selected_call = (callable_obj_t*)g_value_get_pointer(&val);
 
-		selected_call_id = selected_call->_callID;
-		selected_path = string_path;
+		if(selected_call) {
+
+		    selected_call_id = selected_call->_callID;
+		    selected_path = string_path;
+		    selected_conf = NULL;
+		}
+
+		DEBUG("  selected_path %s, selected_call_id %s, selected_path_depth %i\n", selected_path, selected_call_id, selected_path_depth);
 	}
 
-	DEBUG("selected_cb\n");
-	DEBUG("  selected_path %s, selected_call_id %s, selected_path_depth %i\n", selected_path, selected_call_id, selected_path_depth);
 
 	// conferencelist_reset ();
 	// sflphone_fill_conference_list();
diff --git a/sflphone-client-gnome/src/uimanager.c b/sflphone-client-gnome/src/uimanager.c
index 78cfc6aa74534ccc548f17867ee1a5afd17fe53d..c6895161296e7d0e9e1d0d01bc815483d276e3cd 100644
--- a/sflphone-client-gnome/src/uimanager.c
+++ b/sflphone-client-gnome/src/uimanager.c
@@ -69,6 +69,8 @@ static gboolean is_inserted (GtkWidget* button, GtkWidget *current_toolbar)
 void update_actions()
 {
 
+       DEBUG("Update action");
+
 	gtk_action_set_sensitive( GTK_ACTION (newCallAction), TRUE);
 	gtk_action_set_sensitive (GTK_ACTION (pickUpAction), FALSE);
 	gtk_action_set_sensitive (GTK_ACTION (hangUpAction), FALSE);
@@ -145,6 +147,7 @@ void update_actions()
 
 	if (selectedCall)
 	{
+	        // DEBUG("------------------------- selected call ---------------------------\n");
 		gtk_action_set_sensitive (GTK_ACTION (copyAction), TRUE);
 
 		switch(selectedCall->_state)
@@ -220,9 +223,48 @@ void update_actions()
 				break;
 		}
 	}
+	else if (selectedConf){
 
-	else
-	{
+	        // DEBUG("------------------------- selected conf ---------------------------\n");
+
+	        switch(selectedConf->_state) {
+
+		case CONFERENCE_STATE_ACTIVE_ATACHED:
+		  gtk_action_set_sensitive (GTK_ACTION (hangUpAction), TRUE);
+		  gtk_widget_set_sensitive (GTK_WIDGET (holdToolbar), TRUE);
+		  gtk_toolbar_insert (GTK_TOOLBAR (toolbar), GTK_TOOL_ITEM (hangUpWidget), 1);
+		  gtk_toolbar_insert (GTK_TOOLBAR (toolbar), GTK_TOOL_ITEM (holdToolbar), 2);
+		  break;
+
+		case CONFERENCE_STATE_ACTIVE_DETACHED:
+		  gtk_action_set_sensitive (GTK_ACTION (hangUpAction), TRUE);
+		  gtk_widget_set_sensitive (GTK_WIDGET (holdToolbar), TRUE);
+		  gtk_toolbar_insert (GTK_TOOLBAR (toolbar), GTK_TOOL_ITEM (hangUpWidget), 1);
+		  gtk_toolbar_insert (GTK_TOOLBAR (toolbar), GTK_TOOL_ITEM (holdToolbar), 2);
+		  break;
+
+		case CONFERENCE_STATE_RECORD:
+		  gtk_action_set_sensitive (GTK_ACTION (hangUpAction), TRUE);
+		  gtk_widget_set_sensitive (GTK_WIDGET (holdToolbar), TRUE);
+		  gtk_toolbar_insert (GTK_TOOLBAR (toolbar), GTK_TOOL_ITEM (hangUpWidget), 1);
+		  gtk_toolbar_insert (GTK_TOOLBAR (toolbar), GTK_TOOL_ITEM (holdToolbar), 2);
+		  break;
+		  
+		case CONFERENCE_STATE_HOLD:
+		  gtk_action_set_sensitive (GTK_ACTION (hangUpAction), TRUE);
+		  gtk_widget_set_sensitive (GTK_WIDGET (offHoldToolbar), TRUE);
+		  gtk_toolbar_insert (GTK_TOOLBAR (toolbar), GTK_TOOL_ITEM (hangUpWidget), 1);
+		  gtk_toolbar_insert (GTK_TOOLBAR (toolbar), GTK_TOOL_ITEM (offHoldToolbar), 2);
+		  break;
+
+		default:
+		  WARN("Should not happen in update_action()!");
+		  break;
+		  
+		}
+	}  
+
+	else {
 		if( account_list_get_size() > 0  && current_account_has_mailbox ())
 		{
 			gtk_toolbar_insert (GTK_TOOLBAR (toolbar), GTK_TOOL_ITEM (voicemailToolbar), -2);