diff --git a/Fltk/GUI.cpp b/Fltk/GUI.cpp
index f374b368fa832d8e9eca39e79bb40ef0acb5c0e8..b12e2a4d6b1bee5ccf35889bc58bcdd28afbd7b3 100644
--- a/Fltk/GUI.cpp
+++ b/Fltk/GUI.cpp
@@ -1,4 +1,4 @@
-// $Id: GUI.cpp,v 1.175 2002-05-18 23:07:42 geuzaine Exp $
+// $Id: GUI.cpp,v 1.176 2002-05-19 08:31:13 geuzaine Exp $
 //
 // Copyright (C) 1997 - 2002 C. Geuzaine, J.-F. Remacle
 //
@@ -691,23 +691,36 @@ void GUI::create_menu_window(int argc, char **argv){
   }
 
   int width = 13*CTX.fontsize-CTX.fontsize/2-2 ;
-  MH = BH + BH+6 ; // this is the initial height: no dynamic button is shown!
-  
+
+ // this is the initial height: no dynamic button is shown!
+#if defined(__APPLE__) && defined(APPLE_USE_SYS_MENU)
+  MH = BH+6 ; // the menu bar is not in the application!
+#else
+  MH = BH + BH+6 ;
+#endif
+
   m_window = new Fl_Window(width,MH);
   m_window->box(WINDOW_BOX);
   m_window->label("Gmsh");
   m_window->callback(file_quit_cb);
   
+#if defined(__APPLE__) && defined(APPLE_USE_SYS_MENU)
+  m_menu_bar = new Fl_Sys_Menu_Bar(); 
+  m_menu_bar->menu(m_menubar_table);
+  m_menu_bar->global();
+  Fl_Box *o = new Fl_Box(0,0,width,BH+6);
+  o->box(FL_UP_BOX);
+  y = 3;
+#else
   m_menu_bar = new Fl_Menu_Bar(0,0,width,BH); 
   m_menu_bar->menu(m_menubar_table);
   m_menu_bar->box(FL_UP_BOX);
   m_menu_bar->global();
-  
   Fl_Box *o = new Fl_Box(0,BH,width,BH+6);
   o->box(FL_UP_BOX);
-  
   y = BH + 3;
-  
+#endif
+
   m_navig_butt[0] = new Fl_Button(1,y,18,BH/2,"@<");
   m_navig_butt[0]->labeltype(FL_SYMBOL_LABEL);
   m_navig_butt[0]->labelsize(11);
diff --git a/Fltk/GUI.h b/Fltk/GUI.h
index 90989f508b506630f673ce086e0746173fea89a6..2f4f574ba2c4fb26e586bc43192d0b84d9582263 100644
--- a/Fltk/GUI.h
+++ b/Fltk/GUI.h
@@ -44,6 +44,7 @@
 
 #if !((FL_MAJOR_VERSION == 1) && (FL_MINOR_VERSION == 0))
 #include <FL/Fl_Tooltip.H>
+#include <FL/Fl_Sys_Menu_Bar.H>
 #endif
 
 #include "Opengl_Window.h"
@@ -52,6 +53,9 @@
 #define NB_BUTT_MAX    100
 #define NB_HISTORY_MAX 1000
 
+// Undefine this to get the menu inside Gmsh (like in Window/Unix)
+#define APPLE_USE_SYS_MENU
+
 // The dynamic contexts
 
 typedef struct{
@@ -124,7 +128,11 @@ public:
 
   // menu window
   Fl_Window        *m_window ;
+#if defined(__APPLE__) && defined(APPLE_USE_SYS_MENU)
+  Fl_Sys_Menu_Bar  *m_menu_bar ;
+#else
   Fl_Menu_Bar      *m_menu_bar ;
+#endif
   Fl_Choice        *m_module_butt ;
   Fl_Button        *m_navig_butt  [2] ;
   Fl_Button        *m_push_butt   [NB_BUTT_MAX] ;