--- gail.c.orig	2006-08-07 16:04:13.000000000 +0200
+++ gail.c	2006-10-30 21:59:36.000000000 +0100
@@ -387,6 +387,7 @@
           void *vp_next_focus_widget = &next_focus_widget;
           g_source_remove (focus_notify_handler);
           g_object_remove_weak_pointer (G_OBJECT (next_focus_widget), vp_next_focus_widget);
+	  next_focus_widget = NULL;
           focus_notify_handler = 0;
           was_deselect = FALSE;
         }
@@ -618,6 +619,7 @@
 	    {
 	      void *vp_next_focus_widget = &next_focus_widget;
 	      g_object_remove_weak_pointer (G_OBJECT (next_focus_widget), vp_next_focus_widget);
+	      next_focus_widget = NULL;
 	    }
         }
       else
@@ -683,6 +685,7 @@
       void *vp_next_focus_widget = &next_focus_widget;
       g_source_remove (focus_notify_handler);
       g_object_remove_weak_pointer (G_OBJECT (next_focus_widget), vp_next_focus_widget);
+      next_focus_widget = NULL;
       focus_notify_handler = 0;
       was_deselect = FALSE;
     }
