diff --git a/sflphone-client-gnome/src/contacts/calltree.c b/sflphone-client-gnome/src/contacts/calltree.c
index e1428fa1c531ab7436f346f243b418d3e051a4a7..b5f24b2694256aeaf79724e602a7db5c1cee26f6 100644
--- a/sflphone-client-gnome/src/contacts/calltree.c
+++ b/sflphone-client-gnome/src/contacts/calltree.c
@@ -162,73 +162,84 @@ row_activated(GtkTreeView       *tree_view UNUSED,
 
     DEBUG("double click action");
 
-    if( active_calltree == current_calls )
+    if(calltab_get_selected_type(active_calltree) == A_CALL)
     {
-	
-	if(calltab_get_selected_type(current_calls) == A_CALL)
+
+	DEBUG("Selected a call\n");
+	selectedCall = calltab_get_selected_call(active_calltree);
+
+	if (selectedCall)
 	{
-	    selectedCall = calltab_get_selected_call(current_calls);
+	    DEBUG("there is a selected call\n");
 
-	    if (selectedCall)
+	    // Get the right event from the right calltree
+	    if( active_calltree == current_calls )
 	    {
-		// Get the right event from the right calltree
-		if( active_calltree == current_calls )
+
+		DEBUG("active tree is current calls");
+
+		switch(selectedCall->_state)
 		{
-		    switch(selectedCall->_state)
-		    {
-		    case CALL_STATE_INCOMING:
-			dbus_accept(selectedCall);
-			stop_notification();
-			break;
-		    case CALL_STATE_HOLD:
-			dbus_unhold(selectedCall);
-			break;
-		    case CALL_STATE_RINGING:
-		    case CALL_STATE_CURRENT:
-		    case CALL_STATE_BUSY:
-		    case CALL_STATE_FAILURE:
-			break;
-		    case CALL_STATE_DIALING:
-			sflphone_place_call (selectedCall);
-			break;
-		    default:
-			WARN("Row activated - Should not happen!");
-			break;
-		    }
+		case CALL_STATE_INCOMING:
+		    dbus_accept(selectedCall);
+		    stop_notification();
+		    break;
+		case CALL_STATE_HOLD:
+		    dbus_unhold(selectedCall);
+		    break;
+		case CALL_STATE_RINGING:
+		case CALL_STATE_CURRENT:
+		case CALL_STATE_BUSY:
+		case CALL_STATE_FAILURE:
+		    break;
+		case CALL_STATE_DIALING:
+		    sflphone_place_call (selectedCall);
+		    break;
+		default:
+		    WARN("Row activated - Should not happen!");
+		    break;
 		}
+	    }
 
-		// If history or contact: double click action places a new call
-		else
-		{
-		    account_id = g_strdup (selectedCall->_accountID);
+	    // If history or contact: double click action places a new call
+	    else
+	    {
+		DEBUG("active tree is history or contact");
 
-		    // Create a new call
-		    create_new_call (CALL, CALL_STATE_DIALING, "", account_id, selectedCall->_peer_name, selectedCall->_peer_number, &new_call);
-		    
-		    calllist_add(current_calls, new_call);
-		    calltree_add_call(current_calls, new_call, NULL);
-		    sflphone_place_call(new_call);
-		    calltree_display(current_calls);
-		}
+		account_id = g_strdup (selectedCall->_accountID);
+
+		// Create a new call
+		create_new_call (CALL, CALL_STATE_DIALING, "", account_id, selectedCall->_peer_name, selectedCall->_peer_number, &new_call);
+		
+		calllist_add(current_calls, new_call);
+		calltree_add_call(current_calls, new_call, NULL);
+		sflphone_place_call(new_call);
+		calltree_display(current_calls);
 	    }
 	}
-	else
+    }
+    else if(calltab_get_selected_type(current_calls) == A_CONFERENCE)
+    {
+	DEBUG("Selected a conference\n");
+
+	if( active_calltree == current_calls )
 	{
+
 	    selectedConf = calltab_get_selected_conf(current_calls);
  
 	    if(selectedConf)
 	    {
 		switch(selectedConf->_state)
 		{
-	            case CONFERENCE_STATE_ACTIVE_ATACHED:
+		    case CONFERENCE_STATE_ACTIVE_ATACHED:
 		        sflphone_add_main_participant(selectedConf);
 			break;
-		    case CONFERENCE_STATE_ACTIVE_DETACHED:
-			sflphone_add_main_participant(selectedConf);
-			break;
-	            case CONFERENCE_STATE_HOLD:
-			sflphone_conference_off_hold(selectedConf);
-			break;
+		case CONFERENCE_STATE_ACTIVE_DETACHED:
+		    sflphone_add_main_participant(selectedConf);
+		    break;
+		case CONFERENCE_STATE_HOLD:
+		    sflphone_conference_off_hold(selectedConf);
+		    break;
 		}
 	    }
 	}