--- gtk/gtkentry.c	2005-08-18 22:10:57.000000000 +0800
+++ gtk/gtkentry.c	2006-05-29 14:42:55.980731414 +0800
@@ -2386,6 +2386,13 @@ gtk_entry_move_cursor (GtkEntry       *e
 	  break;
 	case GTK_MOVEMENT_VISUAL_POSITIONS:
 	  new_pos = gtk_entry_move_visually (entry, new_pos, count);
+	  if (entry->current_pos == new_pos && !extend_selection)
+ 	  {
+	    if (!gtk_widget_keynav_failed (GTK_WIDGET(entry), count > 0 ? GTK_DIR_RIGHT : GTK_DIR_LEFT))
+	    {
+		gtk_widget_child_focus (gtk_widget_get_toplevel (GTK_WIDGET(entry)), count > 0 ? GTK_DIR_TAB_FORWARD : GTK_DIR_TAB_BACKWARD);	
+	    }
+	  }	
 	  break;
 	case GTK_MOVEMENT_WORDS:
 	  while (count > 0)