diff --git a/e-util/e-web-view.c b/e-util/e-web-view.c
index 0fcc906..63359c4 100644
--- a/e-util/e-web-view.c
+++ b/e-util/e-web-view.c
@@ -549,6 +549,8 @@ web_view_hovering_over_link_cb (EWebView *web_view,
 {
 	EWebViewClass *class;
 
+	printf ("%s: title:'%s' uri:'%s'\n", __FUNCTION__, title, uri);
+
 	/* XXX WebKitWebView does not provide a class method for
 	 *     this signal, so we do so we can override the default
 	 *     behavior from subclasses for special URI types. */
diff --git a/mail/e-mail-browser.c b/mail/e-mail-browser.c
index 4c294a0..db214e3 100644
--- a/mail/e-mail-browser.c
+++ b/mail/e-mail-browser.c
@@ -365,6 +365,18 @@ mail_browser_status_message_cb (EMailBrowser *browser,
 		gtk_statusbar_push (statusbar, context_id, status_message);
 }
 
+static gboolean
+mail_browser_leave_notify_event_cb (GtkWidget *widget,
+				    GdkEventCrossing *crossing_event,
+				    gpointer user_data)
+{
+	g_return_val_if_fail (E_IS_MAIL_BROWSER (widget), FALSE);
+
+	mail_browser_status_message_cb (E_MAIL_BROWSER (widget), NULL);
+
+	return FALSE;
+}
+
 static void
 mail_browser_close_on_reply_response_cb (EAlert *alert,
                                          gint response_id,
@@ -647,6 +659,10 @@ mail_browser_constructed (GObject *object)
 		display, "status-message",
 		G_CALLBACK (mail_browser_status_message_cb), object);
 
+	g_signal_connect (
+		browser, "leave-notify-event",
+		G_CALLBACK (mail_browser_leave_notify_event_cb), NULL);
+
 	widget = e_preview_pane_new (E_WEB_VIEW (display));
 	browser->priv->preview_pane = g_object_ref (widget);
 	gtk_widget_show (widget);
diff --git a/shell/e-shell-content.c b/shell/e-shell-content.c
index 8509668..3c753b3 100644
--- a/shell/e-shell-content.c
+++ b/shell/e-shell-content.c
@@ -171,6 +171,16 @@ shell_content_finalize (GObject *object)
 	G_OBJECT_CLASS (e_shell_content_parent_class)->finalize (object);
 }
 
+static gboolean
+shell_content_leave_notify_event_cb (EShellContent *shell_content,
+				     GdkEventCrossing *crossing_event,
+				     gpointer user_data)
+{
+	printf ("   %s: window:%p subwindow:%p\n", __FUNCTION__, crossing_event->window, crossing_event->subwindow);
+
+	return FALSE;
+}
+
 static void
 shell_content_constructed (GObject *object)
 {
@@ -201,6 +211,9 @@ shell_content_constructed (GObject *object)
 
 	/* Chain up to parent's constructed() method. */
 	G_OBJECT_CLASS (e_shell_content_parent_class)->constructed (object);
+
+	g_signal_connect (shell_content, "leave-notify-event",
+		G_CALLBACK (shell_content_leave_notify_event_cb), NULL);
 }
 
 static void
diff --git a/shell/e-shell-window.c b/shell/e-shell-window.c
index 663c032..9ebece7 100644
--- a/shell/e-shell-window.c
+++ b/shell/e-shell-window.c
@@ -220,6 +220,25 @@ shell_window_update_close_action_cb (EShellWindow *shell_window)
 	gtk_action_set_sensitive (ACTION (CLOSE), n_shell_windows > 1);
 }
 
+static gboolean
+shell_window_leave_notify_event_cb (EShellWindow *shell_window,
+				    GdkEventCrossing *crossing_event,
+				    gpointer user_data)
+{
+	EShellView *shell_view;
+	EShellTaskbar *shell_taskbar;
+
+	g_return_val_if_fail (E_IS_SHELL_WINDOW (shell_window), FALSE);
+
+	shell_view = e_shell_window_get_shell_view (shell_window, e_shell_window_get_active_view (shell_window));
+	shell_taskbar = e_shell_view_get_shell_taskbar (shell_view);
+
+	printf ("%s: window:%p subwindow:%p\n", __FUNCTION__, crossing_event->window, crossing_event->subwindow);
+	//e_shell_taskbar_set_message (shell_taskbar, NULL);
+
+	return FALSE;
+}
+
 static void
 shell_window_tweak_for_small_screen (EShellWindow *shell_window)
 {
@@ -1123,6 +1142,9 @@ e_shell_window_init (EShellWindow *shell_window)
 	gtk_style_context_add_provider_for_screen (gdk_screen_get_default (),
 		GTK_STYLE_PROVIDER (css_provider),
 		GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+
+	g_signal_connect (shell_window, "leave-notify-event",
+		G_CALLBACK (shell_window_leave_notify_event_cb), NULL);
 }
 
 /**
