diff --git a/sflphone-client-gnome/src/actions.c b/sflphone-client-gnome/src/actions.c
index b7b1663ecb7316ea5530261678ceef8cbe0cb238..a2506dc62924c99ef2be59b710755a26994caea2 100644
--- a/sflphone-client-gnome/src/actions.c
+++ b/sflphone-client-gnome/src/actions.c
@@ -442,6 +442,9 @@ sflphone_pick_up()
 sflphone_on_hold ()
 {
     callable_obj_t * selectedCall = calltab_get_selected_call(current_calls);
+    conference_obj_t * selectedConf = calltab_get_selected_conf(active_calltree);
+
+    DEBUG("sflphone_on_hold");
     if(selectedCall)
     {
         switch(selectedCall->_state)
@@ -458,12 +461,18 @@ sflphone_on_hold ()
                 break;
         }
     }
+    else if (selectedConf) {
+        dbus_hold_conference(selectedConf);
+    }
 }
 
     void
 sflphone_off_hold ()
 {
+    DEBUG("sflphone_off_hold");
     callable_obj_t * selectedCall = calltab_get_selected_call(current_calls);
+    conference_obj_t * selectedConf = calltab_get_selected_conf(active_calltree);
+
     if(selectedCall)
     {
         switch(selectedCall->_state)
@@ -476,7 +485,12 @@ sflphone_off_hold ()
                 break;
         }
     }
+    else if (selectedConf) {
 
+        
+        dbus_unhold_conference(selectedConf);
+    }
+    /*
     if(dbus_get_is_recording(selectedCall))
     {
         DEBUG("Currently recording!");
@@ -485,6 +499,7 @@ sflphone_off_hold ()
     {
         DEBUG("Not recording currently");
     }
+    */
 }
 
 
diff --git a/sflphone-client-gnome/src/uimanager.c b/sflphone-client-gnome/src/uimanager.c
index c6895161296e7d0e9e1d0d01bc815483d276e3cd..1a4632c5898cb0c75e8c07bf5ce968830eeda8a6 100644
--- a/sflphone-client-gnome/src/uimanager.c
+++ b/sflphone-client-gnome/src/uimanager.c
@@ -385,6 +385,7 @@ switch_account(  GtkWidget* item , gpointer data UNUSED)
 call_hold  (void* foo UNUSED)
 {
 	callable_obj_t * selectedCall = calltab_get_selected_call(current_calls);
+	conference_obj_t * selectedConf = calltab_get_selected_conf();
 
 	if(selectedCall)
 	{
@@ -397,6 +398,28 @@ call_hold  (void* foo UNUSED)
 			sflphone_on_hold();
 		}
 	}
+	else if (selectedConf) {
+
+	    switch(selectedConf->_state) {
+
+	    case CONFERENCE_STATE_HOLD: 
+	      {
+		selectedConf->_state = CONFERENCE_STATE_ACTIVE_ATACHED;
+		sflphone_conference_off_hold(selectedConf);
+	      }
+	      break;
+	      
+	    case CONFERENCE_STATE_ACTIVE_ATACHED:
+	    case CONFERENCE_STATE_ACTIVE_DETACHED: {
+	      selectedConf->_state = CONFERENCE_STATE_HOLD;
+	      sflphone_conference_on_hold(selectedConf);
+	    }
+	      break;
+	    default:
+	      break;
+	    }
+	    
+	}
 }
 
 	static void