diff --git a/src/Fl_MacOS_Sys_Menu_Bar.mm b/src/Fl_MacOS_Sys_Menu_Bar.mm
index 10d82b09a0fa00359aff2f6d8688659e9fe2bf0d..f75db1d81cd4b5c31188ba5199c336dfb847b6ba 100644
--- a/src/Fl_MacOS_Sys_Menu_Bar.mm
+++ b/src/Fl_MacOS_Sys_Menu_Bar.mm
@@ -631,8 +631,9 @@ void Fl_MacOS_Sys_Menu_Bar_Driver::remove_window(Fl_Window *win)
     if (item->user_data() == win) {
       bool doit = item->value();
       remove(index);
-      if (doit) {
+      if (doit) { // select Fl::first_window() in Window menu
         item = (Fl_Menu_Item*)bar->menu() + find_first_window() + 1;
+        while (item->label() && item->user_data() != Fl::first_window()) item++;
         if (item->label()) {
           ((Fl_Window*)item->user_data())->show();
           setonly(item);