diff --git a/sflphone-client-gnome/pixmaps/Makefile.am b/sflphone-client-gnome/pixmaps/Makefile.am
index 33dc526e3ffdce17f9f6263f09eabb4079192978..56a6e20755c43cd3f4e87ef2bcf6872627f228ec 100644
--- a/sflphone-client-gnome/pixmaps/Makefile.am
+++ b/sflphone-client-gnome/pixmaps/Makefile.am
@@ -25,6 +25,7 @@ buttons_DATA = current.svg \
 				busy.svg \
 				sflphone.svg \
 				sflphone_small.svg \
+				sflphone_notif.svg \
 				stock_person.svg \
 				icon_rec.svg \
 				rec_call.svg \
diff --git a/sflphone-client-gnome/src/config/preferencesdialog.c b/sflphone-client-gnome/src/config/preferencesdialog.c
index b472887b6d4c4859341d5a7a7a168d4072afc605..d804865fa4dba066698196f1538f8ac3c4d28458 100644
--- a/sflphone-client-gnome/src/config/preferencesdialog.c
+++ b/sflphone-client-gnome/src/config/preferencesdialog.c
@@ -87,10 +87,10 @@ start_hidden( void )
     dbus_start_hidden();
 }
 
-static void
-set_popup_mode( void )
+static void set_popup_mode (GtkWidget *widget, gpointer *userdata)
 {
-    dbus_switch_popup_mode();
+	if (dbus_popup_mode () || gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)))
+		dbus_switch_popup_mode ();
 }
 
 
@@ -452,14 +452,15 @@ create_general_settings ()
     gtk_box_pack_start(GTK_BOX(ret), frame, FALSE, FALSE, 0);
 
     GtkWidget* trayItem1 = gtk_radio_button_new_with_mnemonic(NULL,  _("_Popup main window on incoming call"));
-    gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(trayItem1), dbus_popup_mode() );
-    g_signal_connect(G_OBJECT( trayItem1 ), "clicked", G_CALLBACK( set_popup_mode ) , NULL);
+    g_signal_connect(G_OBJECT (trayItem1), "toggled", G_CALLBACK (set_popup_mode), NULL);
     gtk_table_attach( GTK_TABLE(table), trayItem1, 0, 1, 0, 1, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 5);
 
-    trayItem = gtk_radio_button_new_with_mnemonic_from_widget(GTK_RADIO_BUTTON(trayItem1), _("Ne_ver popup main window"));
-    gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(trayItem), !dbus_popup_mode() );
+    trayItem = gtk_radio_button_new_with_mnemonic_from_widget (GTK_RADIO_BUTTON(trayItem1), _("Ne_ver popup main window"));
     gtk_table_attach( GTK_TABLE(table), trayItem, 0, 1, 1, 2, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 5);
 
+	// Toggle according to the user configuration
+	dbus_popup_mode () ? gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (trayItem1), TRUE) : gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (trayItem), TRUE);
+
     trayItem = gtk_check_button_new_with_mnemonic(_("Hide SFLphone window on _startup"));
     gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(trayItem), dbus_is_start_hidden() );
     g_signal_connect(G_OBJECT( trayItem ) , "clicked" , G_CALLBACK( start_hidden ) , NULL);
diff --git a/sflphone-client-gnome/src/dbus/dbus.c b/sflphone-client-gnome/src/dbus/dbus.c
index 557351e80794d179f8ddeeb6f05233b112b46a6a..7f9f0f732999dc7e1533ca02d14e18ded5b4dd9e 100644
--- a/sflphone-client-gnome/src/dbus/dbus.c
+++ b/sflphone-client-gnome/src/dbus/dbus.c
@@ -64,7 +64,8 @@ incoming_call_cb (DBusGProxy *proxy UNUSED,
 
     create_new_call (CALL, CALL_STATE_INCOMING, g_strdup(callID), g_strdup(accountID), peer_name, peer_number, &c);
 #if GTK_CHECK_VERSION(2,10,0)
-    status_tray_icon_blink( TRUE );
+    status_tray_icon_blink (TRUE);
+	popup_main_window ();
 #endif
 
     set_timestamp (&c->_time_start);
diff --git a/sflphone-client-gnome/src/sflphone_const.h b/sflphone-client-gnome/src/sflphone_const.h
index 89fa9d3b2ace59d28379987dbc058746cff08e51..d76373fd71bba4c63cd2d8b69fbcbe3d8df2e9b7 100644
--- a/sflphone-client-gnome/src/sflphone_const.h
+++ b/sflphone-client-gnome/src/sflphone_const.h
@@ -29,6 +29,7 @@
  */
 
 #define LOGO                ICONS_DIR "/sflphone.svg"
+#define LOGO_NOTIF			ICONS_DIR "/sflphone_notif.svg"
 #define LOGO_SMALL          ICONS_DIR "/sflphone_small.svg"
 
 #define CURRENT_CALLS       "current_calls"
diff --git a/sflphone-client-gnome/src/statusicon.c b/sflphone-client-gnome/src/statusicon.c
index 9757996a6aedd89beec22c308f112e6cd20a73ed..99b8dcc2c6ccec24d66d924fe44b11a4cea5adcd 100644
--- a/sflphone-client-gnome/src/statusicon.c
+++ b/sflphone-client-gnome/src/statusicon.c
@@ -29,6 +29,16 @@ GtkStatusIcon* status;
 GtkWidget * show_menu_item;
 gboolean __minimized = MINIMIZED;
 
+
+void popup_main_window (void)
+{
+	if (__POPUP_WINDOW)
+	{
+		gtk_widget_show (get_main_window ());
+		set_minimized (FALSE);
+	}
+}
+
 void 
 status_quit ( void * foo UNUSED)
 {
@@ -41,31 +51,27 @@ status_icon_unminimize()
   gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(show_menu_item), TRUE);
 }
 
-gboolean
-main_widget_minimized()
+gboolean main_widget_minimized()
 {
   return __minimized;
 }
 
-void 
-show_hide (void)
+void show_hide (void)
 {
-  if(gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(show_menu_item)))
-  {
-    gtk_widget_show(GTK_WIDGET(get_main_window()));
-    set_minimized( !MINIMIZED );
-  }   
-  else
-  {
-    gtk_widget_hide(GTK_WIDGET(get_main_window()));
-    set_minimized( MINIMIZED );
-  }
-
+	if(gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(show_menu_item)))
+	{
+		gtk_widget_show(GTK_WIDGET(get_main_window()));
+		set_minimized( !MINIMIZED );
+	}   
+	else
+	{
+		gtk_widget_hide(GTK_WIDGET(get_main_window()));
+		set_minimized( MINIMIZED );
+	}
 }
 
 
-void 
-status_click (GtkStatusIcon *status_icon UNUSED, void * foo UNUSED)
+void status_click (GtkStatusIcon *status_icon UNUSED, void * foo UNUSED)
 {
     gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(show_menu_item), 
         !gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(show_menu_item)));
@@ -80,8 +86,7 @@ void menu (GtkStatusIcon *status_icon,
     status_icon, button, activate_time);
 }
 
-GtkWidget * 
-create_menu()
+GtkWidget* create_menu()
 {
   GtkWidget * menu;
   GtkWidget * menu_items;
@@ -129,10 +134,13 @@ show_status_icon()
   g_free(tip);
 }
 
-void
-status_tray_icon_blink( gboolean active )
+void status_tray_icon_blink (gboolean active)
 {
-  gtk_status_icon_set_blinking( status , active );
+	// Set a different icon to notify of an event
+	active ? gtk_status_icon_set_from_file (status, LOGO_NOTIF) : gtk_status_icon_set_from_file (status, LOGO);
+	// Do not blink anymore ...
+	// gtk_status_icon_set_blinking (status, active);
+
 }
 
 GtkStatusIcon* 
diff --git a/sflphone-client-gnome/src/statusicon.h b/sflphone-client-gnome/src/statusicon.h
index a269bde64d9d7da179dc8528a053364229593fdf..4a841c4ea0ae2c81a9dfcaf74b32320bd4e7f51b 100644
--- a/sflphone-client-gnome/src/statusicon.h
+++ b/sflphone-client-gnome/src/statusicon.h
@@ -30,6 +30,11 @@
  * @brief The status icon in the system tray.
  */
 
+/**
+ * Popup the main window. Used on incoming calls
+ */
+void popup_main_window (void);
+
 /**
  * Create the status icon 
  */