diff --git a/sflphone-client-gnome/src/uimanager.c b/sflphone-client-gnome/src/uimanager.c
index 6d844be61c15cca7ffc5e5f63f892a7637bd1394..4fa26489885e12f03c0975c7754caddd18fe4bd0 100644
--- a/sflphone-client-gnome/src/uimanager.c
+++ b/sflphone-client-gnome/src/uimanager.c
@@ -29,6 +29,7 @@
 #include <uimanager.h>
 
 static GtkWidget *toolbar;
+static GtkWidget *toolbarWindows;
 
 guint transfertButtonConnId; //The button toggled signal connection ID
 
@@ -57,9 +58,9 @@ enum {
 };
 
 
-static gboolean is_inserted (GtkWidget* button)
+static gboolean is_inserted (GtkWidget* button, GtkWidget *current_toolbar)
 {
-	return (GTK_WIDGET (button)->parent == GTK_WIDGET (toolbar));
+	return (GTK_WIDGET (button)->parent == GTK_WIDGET (current_toolbar));
 }
 
 
@@ -220,21 +221,42 @@ void update_actions()
 	gtk_action_set_sensitive (GTK_ACTION (copyAction),   FALSE);
 	gtk_action_set_sensitive (GTK_ACTION (voicemailAction), FALSE);
 	gtk_widget_set_sensitive (GTK_WIDGET (transferToolbar), FALSE);
+	gtk_widget_set_sensitive( GTK_WIDGET(contactButton), FALSE);
+	gtk_widget_set_tooltip_text (GTK_WIDGET (contactButton), _("No address book selected"));
 
 	//g_object_ref (holdToolbar);
 	//g_object_ref (unholdButton);
-	if (is_inserted (GTK_WIDGET (holdToolbar)))   
+
+	g_object_ref (contactButton);
+	if (is_inserted (GTK_WIDGET(contactButton), GTK_WIDGET (toolbarWindows)))    
+	{
+		gtk_container_remove (GTK_CONTAINER (toolbarWindows), GTK_WIDGET (contactButton));
+	}
+
+	if (is_inserted (GTK_WIDGET (holdToolbar), GTK_WIDGET (toolbar)))   
 		gtk_container_remove (GTK_CONTAINER (toolbar), GTK_WIDGET (holdToolbar));
-	if (is_inserted (GTK_WIDGET (offHoldToolbar))) 
+	if (is_inserted (GTK_WIDGET (offHoldToolbar), GTK_WIDGET (toolbar))) 
 		gtk_container_remove (GTK_CONTAINER (toolbar), GTK_WIDGET (offHoldToolbar));
 	gtk_toolbar_insert (GTK_TOOLBAR (toolbar), GTK_TOOL_ITEM (holdToolbar), 3);
 
-	if (is_inserted (GTK_WIDGET (newCallWidget))) 
+	if (is_inserted (GTK_WIDGET (newCallWidget), GTK_WIDGET (toolbar))) 
 		gtk_container_remove (GTK_CONTAINER (toolbar), GTK_WIDGET (newCallWidget));
-	if (is_inserted (GTK_WIDGET (pickUpWidget))) 
+	if (is_inserted (GTK_WIDGET (pickUpWidget), GTK_WIDGET (toolbar))) 
 		gtk_container_remove (GTK_CONTAINER (toolbar), GTK_WIDGET (pickUpWidget));
 	gtk_toolbar_insert (GTK_TOOLBAR (toolbar), GTK_TOOL_ITEM (newCallWidget), 0);
 
+	// If addressbook support has been enabled and all addressbooks are loaded, display the icon
+	
+	if (addressbook_is_enabled () && addressbook_is_ready()) {  
+		gtk_toolbar_insert (GTK_TOOLBAR (toolbarWindows), contactButton, 2);
+		// Make the icon clickable only if at least one address book is active
+		if (addressbook_is_active ())
+		{
+			gtk_widget_set_sensitive( GTK_WIDGET(contactButton), TRUE);
+			gtk_widget_set_tooltip_text (GTK_WIDGET (contactButton), _("Address book"));
+		}
+	}
+
 	g_signal_handler_block ( (gpointer)transferToolbar, transfertButtonConnId);
 	gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON (transferToolbar), FALSE);
 	g_signal_handler_unblock ( (gpointer)transferToolbar, transfertButtonConnId);
@@ -802,7 +824,7 @@ static const GtkRadioActionEntry radio_menu_entries[] = {
 
 	{"CallWindow", GTK_STOCK_CALLS, "_Call window", NULL, "Calls list", CALLTREE_CALLS},
 	{"History", "appointment-soon", "_History", NULL, "Calls history", CALLTREE_HISTORY},
-	{"Addressbook", GTK_STOCK_ADDRESSBOOK, "_Address book", NULL, "Address book", CALLTREE_CONTACTS}
+	{"Addressbook", GTK_STOCK_ADDRESSBOOK, "_Address book", NULL, NULL, CALLTREE_CONTACTS}
 
 };
 
@@ -1394,14 +1416,12 @@ GtkWidget* create_toolbar_actions (GtkUIManager *ui_manager)
 
 GtkWidget* create_toolbar_windows (GtkUIManager *ui_manager)
 {
-	GtkWidget *toolbar;
-
-	toolbar = gtk_ui_manager_get_widget (ui_manager, "/ToolbarWindows");
+	toolbarWindows = gtk_ui_manager_get_widget (ui_manager, "/ToolbarWindows");
 	active_calltree = current_calls;
 
 	historyButton = gtk_ui_manager_get_widget (ui_manager, "/ToolbarWindows/HistoryToolbar");
 	contactButton = gtk_ui_manager_get_widget (ui_manager, "/ToolbarWindows/AddressbookToolbar");
 	currentCallsButton = gtk_ui_manager_get_widget (ui_manager, "/ToolbarWindows/CallWindowToolbar");
 
-	return toolbar;
+	return toolbarWindows;
 }