diff --git a/sflphone-client-gnome/src/mainwindow.c b/sflphone-client-gnome/src/mainwindow.c
index 9b987c66b1ac7652c90da6e7448fa70229fa72aa..35ab68beb223340c8f9f8ff3e60b2c1a8ff9900e 100644
--- a/sflphone-client-gnome/src/mainwindow.c
+++ b/sflphone-client-gnome/src/mainwindow.c
@@ -315,38 +315,28 @@ main_window_info_message(gchar * markup){
 }
 
 void
-main_window_dialpad( gboolean *state ){
-  if( !SHOW_DIALPAD )
-  {
+main_window_dialpad( gboolean state ){
+  if(state) {
     dialpad = create_dialpad();
     gtk_box_pack_end (GTK_BOX (subvbox), dialpad, FALSE /*expand*/, TRUE /*fill*/, 0 /*padding*/);
     gtk_widget_show_all (dialpad);
-    *state = TRUE;
-  }
-  else
-  {
+  } else {
     gtk_container_remove(GTK_CONTAINER (subvbox), dialpad);
-    *state = FALSE;
   }
 }
 
 void
-main_window_volume_controls( gboolean *state ){
-  if( !SHOW_VOLUME )
-  {
+main_window_volume_controls( gboolean state ){
+  if(state){
     speaker_control = create_slider("speaker");
     gtk_box_pack_end (GTK_BOX (subvbox), speaker_control, FALSE /*expand*/, TRUE /*fill*/, 0 /*padding*/);
     gtk_widget_show_all (speaker_control);
     mic_control = create_slider("mic");
     gtk_box_pack_end (GTK_BOX (subvbox), mic_control, FALSE /*expand*/, TRUE /*fill*/, 0 /*padding*/);
     gtk_widget_show_all (mic_control);
-    *state = TRUE;
-  }
-  else
-  {
+  } else {
     gtk_container_remove( GTK_CONTAINER(subvbox) , speaker_control );
     gtk_container_remove( GTK_CONTAINER(subvbox) , mic_control );
-    *state = FALSE;
   }
 }
 
diff --git a/sflphone-client-gnome/src/mainwindow.h b/sflphone-client-gnome/src/mainwindow.h
index bdf3c0af125353ceb8ffa9ba4f7894805b004746..de8c460c7609c13c2c7061c32fea03c6949ddfba 100644
--- a/sflphone-client-gnome/src/mainwindow.h
+++ b/sflphone-client-gnome/src/mainwindow.h
@@ -52,12 +52,12 @@ gboolean main_window_ask_quit() ;
 /**
   * Shows/Hides the dialpad on the mainwindow
   */
-void main_window_dialpad( gboolean* state );
+void main_window_dialpad( gboolean state );
 
 /**
   * Shows/Hides the dialpad on the mainwindow
   */
-void main_window_volume_controls( gboolean* state );
+void main_window_volume_controls( gboolean state );
 
 /**
  * Display an error message
diff --git a/sflphone-client-gnome/src/menus.c b/sflphone-client-gnome/src/menus.c
index bff3482c9a0787359e50f2990b4a18dc77438613..ae4c70e3bc7b0627eb35a72f2442c029da49d015 100644
--- a/sflphone-client-gnome/src/menus.c
+++ b/sflphone-client-gnome/src/menus.c
@@ -117,6 +117,7 @@ help_about ( void * foo UNUSED)
     "Julien Plissonneau Duquene <julien.plissonneau.duquene@savoirfairelinux.com>",
     "Alexandre Bourget <alexandre.bourget@savoirfairelinux.com>",
     "Pierre-Luc Beaudoin <pierre-luc.beaudoin@savoirfairelinux.com>",
+    "Pierre-Luc Bacon <pierre-luc.bacon@savoirfairelinux.com>",
     "Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>",
     "Yun Liu <yun.liu@savoirfairelinux.com>",
     "Alexandre Savard <alexandre.savard@savoirfairelinux.com>",
@@ -581,38 +582,6 @@ create_edit_menu()
 
     return root_menu;
 }
-/* ----------------------------------------------------------------- */
-    static void
-view_dialpad  (GtkImageMenuItem *imagemenuitem UNUSED,
-        void* foo UNUSED)
-{
-    gboolean state;
-    main_window_dialpad( &state );
-    if( state )
-        gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM ( dialpadMenu ),
-                gtk_image_new_from_file( ICONS_DIR "/icon_dialpad_off.svg"));
-    else
-        gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM ( dialpadMenu ),
-                gtk_image_new_from_file( ICONS_DIR "/icon_dialpad.svg"));
-    dbus_set_dialpad( state );
-
-
-}
-
-    static void
-view_volume_controls  (GtkImageMenuItem *imagemenuitem UNUSED,
-        void* foo UNUSED)
-{
-    gboolean state;
-    main_window_volume_controls( &state );
-    if( state )
-        gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM ( volumeMenu ),
-                gtk_image_new_from_file( ICONS_DIR "/icon_volume_off.svg"));
-    else
-        gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM ( volumeMenu ),
-                gtk_image_new_from_file( ICONS_DIR "/icon_volume.svg"));
-    dbus_set_volume_controls( state );
-}
 
 /*
    static void
@@ -624,39 +593,45 @@ view_volume_controls  (GtkImageMenuItem *imagemenuitem UNUSED,
    dbus_set_searchbar( state );
    }
    */
+   
+   
+static void volume_bar_cb (GtkCheckMenuItem *checkmenuitem, gpointer user_data)
+{
+    gboolean toggled = gtk_check_menu_item_get_active(checkmenuitem);
+    main_window_volume_controls(toggled);
+    dbus_set_volume_controls(toggled);
+}
+
+static void dialpad_bar_cb (GtkCheckMenuItem *checkmenuitem, gpointer user_data)
+{
+    gboolean toggled = gtk_check_menu_item_get_active(checkmenuitem);
+    main_window_dialpad(toggled);
+    dbus_set_dialpad(toggled);
+}
+
     GtkWidget *
 create_view_menu()
 {
     GtkWidget * menu;
     GtkWidget * root_menu;
-    GtkWidget * image;
-
-    menu      = gtk_menu_new ();
+    GtkWidget * volumeBar;
+    GtkWidget * dialpadBar;
+    
+    menu = gtk_menu_new ();
 
-    if( SHOW_DIALPAD )
-        image = gtk_image_new_from_file( ICONS_DIR "/icon_dialpad_off.svg");
-    else
-        image = gtk_image_new_from_file( ICONS_DIR "/icon_dialpad.svg");
-    dialpadMenu = gtk_image_menu_item_new_with_mnemonic (_("_Dialpad"));
-    gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM ( dialpadMenu ), image );
-    gtk_menu_shell_append (GTK_MENU_SHELL (menu), dialpadMenu);
-    g_signal_connect(G_OBJECT ( dialpadMenu ), "activate",
-            G_CALLBACK (view_dialpad),
-            NULL);
-    gtk_widget_show (dialpadMenu);
+    dialpadBar = gtk_check_menu_item_new_with_mnemonic(_("_Dialpad"));
+    gtk_menu_shell_append (GTK_MENU_SHELL (menu), dialpadBar);
+    gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(dialpadBar), (gboolean) SHOW_DIALPAD); 
+    g_signal_connect(G_OBJECT (dialpadBar), "toggled", G_CALLBACK (dialpad_bar_cb), NULL);      
+    gtk_widget_show (dialpadBar);            
 
-    if( SHOW_VOLUME )
-        image = gtk_image_new_from_file( ICONS_DIR "/icon_volume.svg");
-    else
-        image = gtk_image_new_from_file( ICONS_DIR "/icon_volume.svg");
-    volumeMenu = gtk_image_menu_item_new_with_mnemonic (_("_Volume controls"));
-    gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM ( volumeMenu ), image );
-    gtk_menu_shell_append (GTK_MENU_SHELL (menu), volumeMenu);
-    g_signal_connect(G_OBJECT (volumeMenu), "activate",
-            G_CALLBACK (view_volume_controls),
-            NULL);
-    gtk_widget_show (volumeMenu);
 
+    volumeBar = gtk_check_menu_item_new_with_mnemonic(_("_Volume Controls"));
+    gtk_menu_shell_append (GTK_MENU_SHELL (menu), volumeBar);
+    gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(volumeBar), (gboolean) SHOW_VOLUME);
+    g_signal_connect(G_OBJECT (volumeBar), "toggled", G_CALLBACK (volume_bar_cb), NULL); 
+    gtk_widget_show (volumeBar);
+            
     /*image = gtk_image_new_from_stock( GTK_STOCK_FIND , GTK_ICON_SIZE_MENU );
       searchbarMenu = gtk_image_menu_item_new_with_mnemonic (_("_Search bar"));
       gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM ( searchbarMenu ), image );
@@ -669,7 +644,6 @@ create_view_menu()
 
     root_menu = gtk_menu_item_new_with_mnemonic (_("_View"));
     gtk_menu_item_set_submenu (GTK_MENU_ITEM (root_menu), menu);
-
     return root_menu;
 }
 /* ----------------------------------------------------------------- */