Index: gtk/gtkmenushell.c
===================================================================
RCS file: /cvs/gnome/gtk+/gtk/gtkmenushell.c,v
retrieving revision 1.72
diff -u -p -r1.72 gtkmenushell.c
--- gtk/gtkmenushell.c	13 Aug 2003 21:13:09 -0000	1.72
+++ gtk/gtkmenushell.c	16 Nov 2003 23:13:24 -0000
@@ -1042,6 +1042,28 @@ gtk_real_menu_shell_move_current (GtkMen
   if (menu_shell->parent_menu_shell)
     parent_menu_shell = GTK_MENU_SHELL (menu_shell->parent_menu_shell);
   
+  if (gtk_widget_get_direction (GTK_WIDGET (menu_shell)) == GTK_TEXT_DIR_RTL)
+    {
+      switch (direction) 
+	{
+	case GTK_MENU_DIR_PARENT:
+	  direction = GTK_MENU_DIR_CHILD;
+	  break;
+	case GTK_MENU_DIR_CHILD:
+	  direction = GTK_MENU_DIR_PARENT;
+	  break;
+	case GTK_MENU_DIR_PREV:
+	  if (GTK_MENU_SHELL_GET_CLASS (menu_shell)->submenu_placement == GTK_TOP_BOTTOM)
+	    direction = GTK_MENU_DIR_NEXT;
+	  break;
+	case GTK_MENU_DIR_NEXT:
+	  if (GTK_MENU_SHELL_GET_CLASS (menu_shell)->submenu_placement == GTK_TOP_BOTTOM)
+	    direction = GTK_MENU_DIR_PREV;
+	  break;
+	default: ;
+	}
+    }
+
   switch (direction)
     {
     case GTK_MENU_DIR_PARENT:
