diff --git a/Fltk/graphicWindow.cpp b/Fltk/graphicWindow.cpp
index befc978fdfc8abd9d8b0cc5fc6e894eededf9bf0..1ed57387832e6999e5e4b6e6f7a567533329cc85 100644
--- a/Fltk/graphicWindow.cpp
+++ b/Fltk/graphicWindow.cpp
@@ -479,6 +479,12 @@ static void file_rename_cb(Fl_Widget *w, void *data)
 
 void file_quit_cb(Fl_Widget *w, void *data)
 {
+  if(data){
+    std::string opt((const char*)data);
+    if(opt == "ask")
+      if(!fl_choice("Do you really want to quit?", "Cancel", "Quit", 0))
+        return;
+  }
   Msg::Exit(0);
 }
 
@@ -2712,7 +2718,7 @@ graphicWindow::graphicWindow(bool main, int numTiles, bool detachedMenu)
   // non-modal)
   if(main){
     win = new mainWindow(width, height, false);
-    win->callback(file_quit_cb);
+    win->callback(file_quit_cb, (void*)"ask");
   }
   else{
     win = new paletteWindow(width, height, false);
@@ -2910,10 +2916,10 @@ graphicWindow::graphicWindow(bool main, int numTiles, bool detachedMenu)
   win->end();
 
   if(main && detachedMenu){
-    menuwin = new mainWindow
+    menuwin = new paletteWindow
       (CTX::instance()->menuSize[0], CTX::instance()->menuSize[1],
        CTX::instance()->nonModalWindows ? true : false, "Gmsh");
-    menuwin->callback(file_quit_cb);
+    menuwin->callback(file_quit_cb, (void*)"ask");
     menuwin->box(GMSH_WINDOW_BOX);
     onelab = new onelabGroup(0, 0, menuwin->w(), menuwin->h());
     menuwin->position(CTX::instance()->menuPosition[0],
@@ -2956,10 +2962,10 @@ void graphicWindow::detachMenu()
   }
   tile->redraw();
 
-  menuwin = new mainWindow
+  menuwin = new paletteWindow
     (CTX::instance()->menuSize[0], CTX::instance()->menuSize[1],
      CTX::instance()->nonModalWindows ? true : false, "Gmsh");
-  menuwin->callback(file_quit_cb);
+  menuwin->callback(file_quit_cb, (void*)"ask");
   menuwin->box(GMSH_WINDOW_BOX);
   menuwin->add(onelab);
   onelab->resize(0, 0, menuwin->w(), menuwin->h());
diff --git a/Fltk/mainWindow.h b/Fltk/mainWindow.h
index 440194a46ff699f1309fd35aa5f769add62cc4be..b6cd6474c5221c32dc087dab98b4b2efcc15f549 100644
--- a/Fltk/mainWindow.h
+++ b/Fltk/mainWindow.h
@@ -8,7 +8,6 @@
 
 #include <FL/Fl.H>
 #include <FL/Fl_Double_Window.H>
-#include <FL/fl_ask.H>
 
 // Derive the main window from Fl_Window (it shows up faster that way)
 class mainWindow : public Fl_Window {
@@ -26,8 +25,7 @@ class mainWindow : public Fl_Window {
 #else
       if(Fl::test_shortcut(FL_CTRL+'w')){
 #endif
-        if(fl_choice("Do you really want to quit?", "Cancel", "Quit", 0))
-          do_callback();
+        do_callback();
         return 1;
       }
       break;