diff --git a/dlls/user32/menu.c b/dlls/user32/menu.c
index 827bee734e372ad775260824825578ace66d45c6..93b39b4809e0a43ff83d03eb658332a2fd057f79 100644
--- a/dlls/user32/menu.c
+++ b/dlls/user32/menu.c
@@ -3288,6 +3288,7 @@ static BOOL MENU_TrackMenu( HMENU hmenu, UINT wFlags, INT x, INT y,
         if( menu ) menu->bTimeToHide = FALSE;
     }
 
+    SetLastError( ERROR_SUCCESS );
     /* The return value is only used by TrackPopupMenu */
     if (!(wFlags & TPM_RETURNCMD)) return TRUE;
     if (executedMenuId == -1) executedMenuId = 0;