diff --git a/Fltk/graphicWindow.cpp b/Fltk/graphicWindow.cpp
index 192cc582a8ad0895dbb61eecbf48e1070ace90a6..41be69dcac90cfbae3499814acbf60a9a705e3c3 100644
--- a/Fltk/graphicWindow.cpp
+++ b/Fltk/graphicWindow.cpp
@@ -479,12 +479,6 @@ 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);
 }
 
@@ -2718,7 +2712,7 @@ graphicWindow::graphicWindow(bool main, int numTiles, bool detachedMenu)
   // non-modal)
   if(main){
     win = new mainWindow(width, height, false);
-    win->callback(file_quit_cb, (void*)"ask");
+    win->callback(file_quit_cb);
   }
   else{
     win = new paletteWindow(width, height, false);
@@ -2916,10 +2910,10 @@ graphicWindow::graphicWindow(bool main, int numTiles, bool detachedMenu)
   win->end();
 
   if(main && detachedMenu){
-    menuwin = new paletteWindow
+    menuwin = new mainWindow
       (CTX::instance()->menuSize[0], CTX::instance()->menuSize[1],
        CTX::instance()->nonModalWindows ? true : false, "Gmsh");
-    menuwin->callback(file_quit_cb, (void*)"ask");
+    menuwin->callback(file_quit_cb);
     menuwin->box(GMSH_WINDOW_BOX);
     onelab = new onelabGroup(0, 0, menuwin->w(), menuwin->h());
     menuwin->position(CTX::instance()->menuPosition[0],
@@ -2961,10 +2955,10 @@ void graphicWindow::detachMenu()
   }
   tile->redraw();
 
-  menuwin = new paletteWindow
+  menuwin = new mainWindow
     (CTX::instance()->menuSize[0], CTX::instance()->menuSize[1],
      CTX::instance()->nonModalWindows ? true : false, "Gmsh");
-  menuwin->callback(file_quit_cb, (void*)"ask");
+  menuwin->callback(file_quit_cb);
   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 b6cd6474c5221c32dc087dab98b4b2efcc15f549..d92dcf255609be4359970eb7d4ad4178d8f4599c 100644
--- a/Fltk/mainWindow.h
+++ b/Fltk/mainWindow.h
@@ -8,10 +8,10 @@
 
 #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 {
-  void (*myhandle)(int event);
  private:
   int handle(int event)
   {
@@ -25,7 +25,8 @@ class mainWindow : public Fl_Window {
 #else
       if(Fl::test_shortcut(FL_CTRL+'w')){
 #endif
-        do_callback();
+        if(fl_choice("Do you really want to quit?", "Cancel", "Quit", 0))
+          do_callback();
         return 1;
       }
       break;
@@ -33,8 +34,8 @@ class mainWindow : public Fl_Window {
     return Fl_Window::handle(event);
   }
  public:
-  mainWindow(int w, int h, bool nonModal, const char *l=0)
-    : Fl_Window(w, h, l)
+  mainWindow(int w, int h, bool nonModal, const char *l=0) 
+    : Fl_Window(w, h, l) 
   {
     if(nonModal) set_non_modal();
   }