diff --git a/Fltk/FlGui.cpp b/Fltk/FlGui.cpp
index 6af5a03b2d9b6a714b4bcf92cc8788aa6cf0a9fd..5df40535dc33f609bc82c218c47f61d022b91d63 100644
--- a/Fltk/FlGui.cpp
+++ b/Fltk/FlGui.cpp
@@ -271,6 +271,7 @@ FlGui::FlGui(int argc, char **argv)
 #endif
 
   graph[0]->win->show(1, argv);
+  if(graph[0]->menuwin) graph[0]->menuwin->show();
 
   // graphic window should have the initial focus (so we can e.g. directly loop
   // through time steps with the keyboard)
diff --git a/Fltk/graphicWindow.cpp b/Fltk/graphicWindow.cpp
index 1ed57387832e6999e5e4b6e6f7a567533329cc85..192cc582a8ad0895dbb61eecbf48e1070ace90a6 100644
--- a/Fltk/graphicWindow.cpp
+++ b/Fltk/graphicWindow.cpp
@@ -2927,7 +2927,6 @@ graphicWindow::graphicWindow(bool main, int numTiles, bool detachedMenu)
     menuwin->resizable(onelab);
     menuwin->size_range(onelab->getMinWindowWidth(), onelab->getMinWindowHeight());
     menuwin->end();
-    menuwin->show();
   }
   else{
     menuwin = 0;
@@ -3025,8 +3024,8 @@ void graphicWindow::hideMenu()
 void graphicWindow::showHideMenu()
 {
   if(menuwin || !onelab) return;
-  if(onelab->w()) hideMenu();
-  else showMenu();
+  if(onelab->w() < 5) showMenu();
+  else hideMenu();
 }
 
 int graphicWindow::getMenuWidth()
@@ -3202,8 +3201,8 @@ void graphicWindow::hideMessages()
 void graphicWindow::showHideMessages()
 {
   if(!browser) return;
-  if(browser->h()) hideMessages();
-  else showMessages();
+  if(browser->h() < 5) showMessages();
+  else hideMessages();
 }
 
 int graphicWindow::getMessageHeight()