diff --speed-large-files --minimal -Nru gtk+-2.6.1.orig/gtk/gtkdialog.c gtk+-2.6.1/gtk/gtkdialog.c
--- gtk+-2.6.1.orig/gtk/gtkdialog.c	2005-01-04 04:40:36.000000000 +1100
+++ gtk+-2.6.1/gtk/gtkdialog.c	2005-01-24 13:57:38.967558048 +1100
@@ -345,10 +345,16 @@
   if (!window->focus_widget)
     {
       GList *children, *tmp_list;
+      GtkWidget *first_focus = NULL;
       
       do 
 	{
 	  g_signal_emit_by_name (window, "move_focus", GTK_DIR_TAB_FORWARD);
+
+	  if (first_focus == NULL)
+	    first_focus = window->focus_widget;
+	  else if (first_focus == window->focus_widget)
+	    break;
 	}
       while (GTK_IS_LABEL (window->focus_widget));
 
