---
 src/ui/liferea_shell.c |   14 ++++++++++++--
 src/ui/ui_tray.c       |    5 ++++-
 2 files changed, 16 insertions(+), 3 deletions(-)

Index: liferea-1.6.0~rc6/src/ui/ui_tray.c
===================================================================
--- liferea-1.6.0~rc6.orig/src/ui/ui_tray.c
+++ liferea-1.6.0~rc6/src/ui/ui_tray.c
@@ -205,17 +205,20 @@
 	g_free (tmp);
 	g_free (msg);
 }
 
 /* a click on the systray icon should show the program window
    if invisible or hide it if visible */
 static void
 tray_icon_pressed (GtkWidget *button, GdkEventButton *event, EggTrayIcon *icon)
-{	
+{
+	if ((event->type == GDK_2BUTTON_PRESS) || (event->type == GDK_3BUTTON_PRESS))
+		return;  /* ignore double and triple clicks */
+
 	switch (event->button) {
 		case 1:
 			liferea_shell_toggle_visibility ();
 			break;
 		case 3:
 			ui_popup_systray_menu (event->button, event->time);
 			break;
 	}
Index: liferea-1.6.0~rc6/src/ui/liferea_shell.c
===================================================================
--- liferea-1.6.0~rc6.orig/src/ui/liferea_shell.c
+++ liferea-1.6.0~rc6/src/ui/liferea_shell.c
@@ -1348,18 +1348,28 @@
 	gtk_window_present (shell->priv->window);
 }
 
 void
 liferea_shell_toggle_visibility (void)
 {
 	GtkWidget *mainwindow = GTK_WIDGET (shell->priv->window);
 	
-	if ((gdk_window_get_state (mainwindow->window) & GDK_WINDOW_STATE_ICONIFIED) ||
-	    !GTK_WIDGET_VISIBLE (mainwindow)) {
+	if(gdk_window_get_state(GTK_WIDGET(mainwindow)->window) & GDK_WINDOW_STATE_ICONIFIED) {
+		/* The window is either iconified, or on another workspace */
+		/* Raise it in one click */
+		if (GTK_WIDGET_VISIBLE(mainwindow)) {
+			liferea_shell_save_position ();
+			gtk_widget_hide(mainwindow);
+		}
+		liferea_shell_restore_position();
+		gtk_window_present(GTK_WINDOW(mainwindow));
+	}
+	else if(!GTK_WIDGET_VISIBLE(mainwindow)) {
+		/* The window is neither iconified nor on another workspace, but is not visible */
 		liferea_shell_restore_position ();
 		gtk_window_present (shell->priv->window);
 	} else {
 		liferea_shell_save_position ();
 		gtk_widget_hide (mainwindow);
 	}
 }
 
