diff --git a/dlls/user32/menu.c b/dlls/user32/menu.c
index 0e2d9fb10b57566eec7dc0f5c90a941aa340535c..e834cbdcee2831ee2bbd2c24bf45139857394256 100644
--- a/dlls/user32/menu.c
+++ b/dlls/user32/menu.c
@@ -3397,7 +3397,7 @@ void MENU_TrackKbdMenuBar( HWND hwnd, UINT wParam, WCHAR wChar)
         if( uItem == NO_SELECTED_ITEM )
             MENU_MoveSelection( hwnd, hTrackMenu, ITEM_NEXT );
         else
-            PostMessageW( hwnd, WM_KEYDOWN, VK_DOWN, 0L );
+            PostMessageW( hwnd, WM_KEYDOWN, VK_RETURN, 0 );
     }
 
 track_menu:
diff --git a/dlls/user32/tests/msg.c b/dlls/user32/tests/msg.c
index 89e1edf662ec8e1de95474f4e1262703bb70b7d0..c3b94936ece8a52d4ee8cd401bd16964285bcbd9 100644
--- a/dlls/user32/tests/msg.c
+++ b/dlls/user32/tests/msg.c
@@ -12163,7 +12163,7 @@ static void test_menu_messages(void)
         TranslateMessage(&msg);
         DispatchMessage(&msg);
     }
-    ok_sequence(wm_single_menu_item, "single menu item command", TRUE);
+    ok_sequence(wm_single_menu_item, "single menu item command", FALSE);
 
     set_menu_style(hmenu, 0);
     style = get_menu_style(hmenu);