Index: gtk+3.0-3.0.12/gtk/gtktooltip.c
===================================================================
--- gtk+3.0-3.0.12.orig/gtk/gtktooltip.c	2011-11-13 17:00:34.000000000 +0100
+++ gtk+3.0-3.0.12/gtk/gtktooltip.c	2011-11-13 17:26:44.000000000 +0100
@@ -557,7 +557,7 @@
   event.motion.x_root = x;
   event.motion.y_root = y;
 
-  _gtk_tooltip_handle_event (&event);
+  _gtk_tooltip_handle_event_real (&event, FALSE);
 }
 
 /* private functions */
@@ -1502,6 +1502,12 @@
 void
 _gtk_tooltip_handle_event (GdkEvent *event)
 {
+  _gtk_tooltip_handle_event_real(event, TRUE);
+}
+
+void
+_gtk_tooltip_handle_event_real (GdkEvent *event, gboolean may_reset)
+{
   gint x, y;
   gboolean return_value = FALSE;
   GtkWidget *has_tooltip_widget = NULL;
@@ -1535,7 +1541,8 @@
       if (!return_value)
 	gtk_tooltip_hide_tooltip (current_tooltip);
       else
-	gtk_tooltip_start_delay (display);
+      	if (may_reset)
+	  gtk_tooltip_start_delay (display);
 
       return;
     }
@@ -1611,7 +1618,8 @@
 	    if (hide_tooltip)
 	      gtk_tooltip_hide_tooltip (current_tooltip);
 	    else
-	      gtk_tooltip_start_delay (display);
+	      if (may_reset)
+		gtk_tooltip_start_delay (display);
 	  }
 	else
 	  {
Index: gtk+3.0-3.0.12/gtk/gtktooltip.h
===================================================================
--- gtk+3.0-3.0.12.orig/gtk/gtktooltip.h	2011-06-23 19:06:52.000000000 +0200
+++ gtk+3.0-3.0.12/gtk/gtktooltip.h	2011-11-13 17:26:25.000000000 +0100
@@ -64,6 +64,7 @@
 void _gtk_tooltip_focus_out              (GtkWidget          *widget);
 void _gtk_tooltip_toggle_keyboard_mode   (GtkWidget          *widget);
 void _gtk_tooltip_handle_event           (GdkEvent           *event);
+void _gtk_tooltip_handle_event_real      (GdkEvent           *event, gboolean may_reset);
 void _gtk_tooltip_hide                   (GtkWidget          *widget);
 
 GtkWidget * _gtk_widget_find_at_coords   (GdkWindow          *window,
