diff --git a/Common/Context.h b/Common/Context.h
index 4768ae8b4bd12818be1cd7c68f59c4e34f24938d..2ff9e4b1170799e0b526635a651d3167917bf911 100644
--- a/Common/Context.h
+++ b/Common/Context.h
@@ -81,6 +81,7 @@ public :
   int stat_position[2];       // position of the statistics window on the screen
   int ctx_position[2];        // position of the geo/mesh context windows on the screen
   int solver_position[2];     // position of the solver windows on the screen
+  int file_chooser_position[2]; // position of the file chooser window on the screen
   int system_menu_bar;        // use the system menu bar on MacOS?
 
   int batch;                  // 0=full gfx; -1=just parse; 1,2,3=batch 1D, 2D, 3D mesh 
diff --git a/Common/DefaultOptions.h b/Common/DefaultOptions.h
index d5dfc81b0eb2faf989f0780af2afd765d228fd43..55f6b8f8a6eb20563638bf267c2eea006efdc129 100644
--- a/Common/DefaultOptions.h
+++ b/Common/DefaultOptions.h
@@ -454,6 +454,10 @@ StringXNumber GeneralOptions_Number[] = {
     "Use fake transparency (cheaper than the real thing, but incorrect)" },
   { F|O, "FastRedraw" , opt_general_fast_redraw, 1. ,
     "Draw simplified model while rotating, panning and zooming" },
+  { F|S, "FileChooserPositionX" , opt_general_file_chooser_position0 , 200. , 
+    "Horizontal position (in pixels) of the upper left corner of the file chooser windows" }, 
+  { F|S, "FileChooserPositionY" , opt_general_file_chooser_position1 , 200. ,
+    "Vertical position (in pixels) of the upper left corner of the file chooser windows" }, 
   { F|S, "FontSize" , opt_general_fontsize , 12. , 
     "Size of the font in the user interface" },
 
diff --git a/Common/Makefile b/Common/Makefile
index 40f00f4bf0b6092f64e5f83c9abca54eb8f0d52d..f022874da47bf7d1e744530002224befdaf27b8b 100644
--- a/Common/Makefile
+++ b/Common/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.60 2004-07-16 18:59:51 geuzaine Exp $
+# $Id: Makefile,v 1.61 2004-09-25 06:16:12 geuzaine Exp $
 #
 # Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle
 #
@@ -82,7 +82,7 @@ Options.o: Options.cpp ../Plugin/PluginManager.h ../Plugin/Plugin.h \
   ../Mesh/Face.h ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/STL.h \
   ../Mesh/Metric.h ../Mesh/Matrix.h ../Graphics/Draw.h Context.h \
   ../Fltk/Solvers.h ../Fltk/GUI.h ../Fltk/Opengl_Window.h \
-  ../Fltk/Colorbar_Window.h
+  ../Fltk/Colorbar_Window.h ../Fltk/File_Picker.h
 CommandLine.o: CommandLine.cpp Gmsh.h Message.h ../DataStr/Malloc.h \
   ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \
   GmshUI.h GmshVersion.h CommandLine.h ../Numeric/Numeric.h Context.h \
diff --git a/Common/Options.cpp b/Common/Options.cpp
index 274ce628a61054149e671731f595ee9d846806ba..34ae2d079c948ee33ffc0d711bda2fa96ed5113e 100644
--- a/Common/Options.cpp
+++ b/Common/Options.cpp
@@ -1,4 +1,4 @@
-// $Id: Options.cpp,v 1.185 2004-09-23 23:14:38 geuzaine Exp $
+// $Id: Options.cpp,v 1.186 2004-09-25 06:16:12 geuzaine Exp $
 //
 // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle
 //
@@ -1899,6 +1899,20 @@ double opt_general_context_position1(OPT_ARGS_NUM)
   return CTX.ctx_position[1];
 }
 
+double opt_general_file_chooser_position0(OPT_ARGS_NUM)
+{
+  if(action & GMSH_SET)
+    CTX.file_chooser_position[0] = (int)val;
+  return CTX.file_chooser_position[0];
+}
+
+double opt_general_file_chooser_position1(OPT_ARGS_NUM)
+{
+  if(action & GMSH_SET)
+    CTX.file_chooser_position[1] = (int)val;
+  return CTX.file_chooser_position[1];
+}
+
 double opt_general_system_menu_bar(OPT_ARGS_NUM)
 {
   if(action & GMSH_SET)
diff --git a/Common/Options.h b/Common/Options.h
index 2f12f06d0547248317c70e1812134686a61dc574..1660a2dd1e06204c94625d5ff8bbd57a3f93c6f4 100644
--- a/Common/Options.h
+++ b/Common/Options.h
@@ -196,6 +196,8 @@ double opt_general_solver_position0(OPT_ARGS_NUM);
 double opt_general_solver_position1(OPT_ARGS_NUM);
 double opt_general_context_position0(OPT_ARGS_NUM);
 double opt_general_context_position1(OPT_ARGS_NUM);
+double opt_general_file_chooser_position0(OPT_ARGS_NUM);
+double opt_general_file_chooser_position1(OPT_ARGS_NUM);
 double opt_general_viewport2(OPT_ARGS_NUM);
 double opt_general_viewport3(OPT_ARGS_NUM);
 double opt_general_menu_position0(OPT_ARGS_NUM);
diff --git a/Fltk/Callbacks.cpp b/Fltk/Callbacks.cpp
index 11ee21ab1095dac232e7241ee2645f473207f764..9f5b5052f6e1e1b09b0c454941ab027868d88d85 100644
--- a/Fltk/Callbacks.cpp
+++ b/Fltk/Callbacks.cpp
@@ -1,4 +1,4 @@
-// $Id: Callbacks.cpp,v 1.277 2004-09-19 16:44:57 geuzaine Exp $
+// $Id: Callbacks.cpp,v 1.278 2004-09-25 06:16:12 geuzaine Exp $
 //
 // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle
 //
@@ -56,11 +56,6 @@ extern Context_T CTX;
 
 // File chooser (re)definitions
 
-#include <FL/filename.H>
-#include <FL/Fl_File_Chooser.H>
-
-static Fl_File_Chooser *fc = NULL;
-
 int file_chooser(int multi, int create, const char *message,
 		 const char *pat, int patindex, char *fname=NULL)
 {
@@ -69,56 +64,54 @@ int file_chooser(int multi, int create, const char *message,
   Fl_File_Chooser::show_label = "Format:";
   Fl_File_Chooser::all_files_label = "All files (*)";
 
-  if(!fc) {
-    fc = new Fl_File_Chooser(getenv("PWD") ? "." : CTX.home_dir, pat, 
-			     Fl_File_Chooser::SINGLE, message);
+  if(!WID->fc) {
+    WID->fc = new File_Picker(getenv("PWD") ? "." : CTX.home_dir, pat, 
+			      Fl_File_Chooser::SINGLE, message);
     strncpy(oldfilter, pat, 1024);
   }
 
-  fc->label(message);
+  WID->fc->label(message);
 
   if(fname)
-    fc->value(fname);
+    WID->fc->value(fname);
 
   if(strncmp(oldfilter, pat, 1024)) {
     strncpy(oldfilter, pat, 1024);
-    fc->filter(pat);
-    fc->filter_value(patindex);
+    WID->fc->filter(pat);
+    WID->fc->filter_value(patindex);
   }
 
   if(multi)
-    fc->type(Fl_File_Chooser::MULTI);
+    WID->fc->type(Fl_File_Chooser::MULTI);
   else if(create)
-    fc->type(Fl_File_Chooser::CREATE);
+    WID->fc->type(Fl_File_Chooser::CREATE);
   else
-    fc->type(Fl_File_Chooser::SINGLE);
+    WID->fc->type(Fl_File_Chooser::SINGLE);
 
-  fc->show();
-  //fc->newButton->parent()->parent()->position(200,200);
-  //fc->newButton->parent()->parent()->show();
+  WID->fc->position(CTX.file_chooser_position[0], CTX.file_chooser_position[1]);
+  WID->fc->show();
 
-  while(fc->shown())
+  while(WID->fc->shown())
     Fl::wait();
 
-  if(fc->value())
-    return fc->count();
+  if(WID->fc->value())
+    return WID->fc->count();
   else
     return 0;
 }
 
 char *file_chooser_get_name(int num)
 {
-  // to get the relative path:
-  // static char retname[1024];
-  // fl_filename_relative(retname, sizeof(retname), fc->value(num));
-  // return retname;
-
-  return (char *)fc->value(num);
+  if(!WID->fc)
+    return "";
+  return (char *)WID->fc->value(num);
 }
 
 int file_chooser_get_filter()
 {
-  return fc->filter_value();
+  if(!WID->fc)
+    return 0;
+  return WID->fc->filter_value();
 }
 
 // arrow editor
diff --git a/Fltk/File_Picker.h b/Fltk/File_Picker.h
new file mode 100644
index 0000000000000000000000000000000000000000..3e5f159af9a311751c249346c00449a085da27c4
--- /dev/null
+++ b/Fltk/File_Picker.h
@@ -0,0 +1,44 @@
+#ifndef _FILE_PICKER_H_
+#define _FILE_PICKER_H_
+
+// Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+// USA.
+// 
+// Please report all bugs and problems to <gmsh@geuz.org>.
+
+#include <FL/Fl_File_Chooser.H>
+
+// The FLTK team doesn't want to add a position() method to the file
+// chooser, so we have to derive our own. To make things worse, the 
+// original file chooser doesn't expose its window to the world, so
+// we need to use a cheap hack to get to it. Even worse, there is no
+// way we can call get_focus() on the file input widget, which is also
+// private. Sigh...
+
+class File_Picker : public Fl_File_Chooser {
+private:
+  Fl_Double_Window *_win;
+public:
+  File_Picker(const char *d, const char *p, int t, const char *title)
+    : Fl_File_Chooser(d, p, t, title) { 
+    _win = (Fl_Double_Window*)newButton->parent()->parent(); 
+  }
+  void show(){ _win->show(); }
+  void position(int x, int y){ _win->position(x,y);}
+};
+
+#endif
diff --git a/Fltk/GUI.cpp b/Fltk/GUI.cpp
index 65357cb0c8dc411d89aa20aff39686ca2ba06b2f..771cf9f1512ead3845df788b62704259dbb36669 100644
--- a/Fltk/GUI.cpp
+++ b/Fltk/GUI.cpp
@@ -1,4 +1,4 @@
-// $Id: GUI.cpp,v 1.352 2004-09-23 23:13:57 geuzaine Exp $
+// $Id: GUI.cpp,v 1.353 2004-09-25 06:16:12 geuzaine Exp $
 //
 // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle
 //
@@ -710,6 +710,7 @@ GUI::GUI(int argc, char **argv)
   int i;
 
   // initialize static windows
+  fc = NULL;
   m_window = NULL;
   g_window = NULL;
   opt_window = NULL;
diff --git a/Fltk/GUI.h b/Fltk/GUI.h
index 327e0f5df1efe753fa481955a21bc11868933097..3a35f8099f590c7d1a568dae63008a1f13e38999 100644
--- a/Fltk/GUI.h
+++ b/Fltk/GUI.h
@@ -51,6 +51,7 @@
 
 #include "Opengl_Window.h"
 #include "Colorbar_Window.h"
+#include "File_Picker.h"
 
 #if defined(__APPLE__) && defined(HAVE_FL_SYS_MENU_BAR)
 #include <FL/Fl_Sys_Menu_Bar.H>
@@ -130,6 +131,9 @@ public:
 
   Fl_Bitmap  *ortho_bmp, *persp_bmp;
 
+  // file chooser
+  File_Picker *fc;
+
   // menu window
   Fl_Window        *m_window ;
 #if defined(__APPLE__) && defined(HAVE_FL_SYS_MENU_BAR)
diff --git a/Fltk/Makefile b/Fltk/Makefile
index 06012f6d7360d85a7b0f3844199f8f91fbf094ca..12ab7c0576cd445792e19be1d2310859eac28edf 100644
--- a/Fltk/Makefile
+++ b/Fltk/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.56 2004-08-09 10:32:32 geuzaine Exp $
+# $Id: Makefile,v 1.57 2004-09-25 06:16:13 geuzaine Exp $
 #
 # Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle
 #
@@ -73,12 +73,13 @@ Main.o: Main.cpp ../Plugin/PluginManager.h ../Plugin/Plugin.h \
   ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/STL.h ../Mesh/Metric.h \
   ../Mesh/Matrix.h ../Graphics/Draw.h ../Common/Context.h \
   ../Parser/Parser.h GUI.h Opengl_Window.h Colorbar_Window.h \
-  ../Parser/OpenFile.h ../Common/CommandLine.h ../Numeric/Numeric.h
+  File_Picker.h ../Parser/OpenFile.h ../Common/CommandLine.h \
+  ../Numeric/Numeric.h
 Message.o: Message.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h \
   ../Common/GmshVersion.h ../Common/Context.h ../Common/Options.h GUI.h \
-  Opengl_Window.h Colorbar_Window.h ../Common/ColorTable.h
+  Opengl_Window.h Colorbar_Window.h ../Common/ColorTable.h File_Picker.h
 GUI.o: GUI.cpp ../Plugin/PluginManager.h ../Plugin/Plugin.h \
   ../Common/Options.h ../Common/Message.h ../Common/Views.h \
   ../Common/ColorTable.h ../DataStr/List.h ../Common/VertexArray.h \
@@ -89,7 +90,7 @@ GUI.o: GUI.cpp ../Plugin/PluginManager.h ../Plugin/Plugin.h \
   ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Simplex.h ../Mesh/Face.h \
   ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/STL.h ../Mesh/Metric.h \
   ../Mesh/Matrix.h ../Graphics/Draw.h GUI.h Opengl_Window.h \
-  Colorbar_Window.h Callbacks.h Bitmaps.h Win32Icon.h \
+  Colorbar_Window.h File_Picker.h Callbacks.h Bitmaps.h Win32Icon.h \
   ../Parser/OpenFile.h ../Common/CommandLine.h Solvers.h
 Callbacks.o: Callbacks.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
@@ -101,9 +102,9 @@ Callbacks.o: Callbacks.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../Graphics/Draw.h ../Common/Views.h ../Common/ColorTable.h \
   ../Common/Timer.h ../Graphics/CreateFile.h ../Parser/OpenFile.h \
   ../Common/CommandLine.h ../Common/Context.h ../Common/Options.h GUI.h \
-  Opengl_Window.h Colorbar_Window.h Callbacks.h ../Plugin/Plugin.h \
-  ../Plugin/PluginManager.h ../Common/Visibility.h ../Geo/MinMax.h \
-  Solvers.h
+  Opengl_Window.h Colorbar_Window.h File_Picker.h Callbacks.h \
+  ../Plugin/Plugin.h ../Plugin/PluginManager.h ../Common/Visibility.h \
+  ../Geo/MinMax.h Solvers.h
 Opengl.o: Opengl.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h \
@@ -113,7 +114,7 @@ Opengl.o: Opengl.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h ../Mesh/Metric.h \
   ../Mesh/Matrix.h ../Graphics/Draw.h ../Common/Views.h \
   ../Common/ColorTable.h GUI.h Opengl_Window.h Colorbar_Window.h \
-  ../Graphics/gl2ps.h
+  File_Picker.h ../Graphics/gl2ps.h
 Opengl_Window.o: Opengl_Window.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../Numeric/Numeric.h \
@@ -122,20 +123,22 @@ Opengl_Window.o: Opengl_Window.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/STL.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h ../Mesh/Metric.h \
   ../Mesh/Matrix.h ../Graphics/Draw.h ../Common/Views.h \
-  ../Common/ColorTable.h GUI.h Opengl_Window.h Colorbar_Window.h
+  ../Common/ColorTable.h GUI.h Opengl_Window.h Colorbar_Window.h \
+  File_Picker.h
 Colorbar_Window.o: Colorbar_Window.cpp ../Common/Gmsh.h \
   ../Common/Message.h ../DataStr/Malloc.h ../DataStr/List.h \
   ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \
   ../Common/GmshUI.h ../Numeric/Numeric.h GUI.h Opengl_Window.h \
-  Colorbar_Window.h ../Common/ColorTable.h ../Common/Context.h
+  Colorbar_Window.h ../Common/ColorTable.h File_Picker.h \
+  ../Common/Context.h
 GmshServer.o: GmshServer.cpp
 Solvers.o: Solvers.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../utils/solvers/GmshClient.h \
   GmshServer.h ../Parser/OpenFile.h Solvers.h ../Common/GmshUI.h GUI.h \
-  Opengl_Window.h Colorbar_Window.h ../Common/ColorTable.h ../Mesh/Mesh.h \
-  ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Simplex.h ../Mesh/Face.h \
-  ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/STL.h \
+  Opengl_Window.h Colorbar_Window.h ../Common/ColorTable.h File_Picker.h \
+  ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Simplex.h \
+  ../Mesh/Face.h ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/STL.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h ../Mesh/Metric.h \
   ../Mesh/Matrix.h ../Graphics/Draw.h ../Common/Views.h \
   ../Common/Context.h
diff --git a/Fltk/Message.cpp b/Fltk/Message.cpp
index 9c304b8f248af7081d11b3dd0811a4aca9ccec11..61583ad4e7d56a5441520ceb2a500db5b048bc77 100644
--- a/Fltk/Message.cpp
+++ b/Fltk/Message.cpp
@@ -1,4 +1,4 @@
-// $Id: Message.cpp,v 1.57 2004-07-17 22:46:29 geuzaine Exp $
+// $Id: Message.cpp,v 1.58 2004-09-25 06:16:13 geuzaine Exp $
 //
 // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle
 //
@@ -244,6 +244,10 @@ void Exit(int level)
       CTX.ctx_position[1] = WID->context_geometry_window->y();
       CTX.solver_position[0] = WID->solver[0].window->x();
       CTX.solver_position[1] = WID->solver[0].window->y();
+      if(WID->fc){
+	CTX.file_chooser_position[0] = WID->fc->x();
+	CTX.file_chooser_position[1] = WID->fc->y();
+      }
       Print_Options(0, GMSH_SESSIONRC, false, CTX.session_filename_fullpath);
     }
     if(CTX.options_save)
diff --git a/Graphics/Makefile b/Graphics/Makefile
index bc8c2fea3e97f497b040f96dc1c888b899de322b..f836d5db959cd6adee9ba674def43296f4f0c6f9 100644
--- a/Graphics/Makefile
+++ b/Graphics/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.62 2004-08-09 10:32:32 geuzaine Exp $
+# $Id: Makefile,v 1.63 2004-09-25 06:16:13 geuzaine Exp $
 #
 # Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle
 #
@@ -119,14 +119,14 @@ Iso.o: Iso.cpp ../Common/Gmsh.h ../Common/Message.h ../DataStr/Malloc.h \
   ../Common/SmoothNormals.h ../Mesh/Metric.h ../Mesh/Matrix.h Draw.h \
   ../Common/Views.h ../Common/ColorTable.h ../Common/Context.h \
   ../Numeric/Numeric.h
-Entity.o: Entity.cpp ../Common/Gmsh.h ../Common/Message.h \
-  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
-  ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h \
-  ../Numeric/Numeric.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Element.h \
-  ../Mesh/Simplex.h ../Mesh/Face.h ../Mesh/Edge.h ../Geo/ExtrudeParams.h \
-  ../Mesh/STL.h ../Common/VertexArray.h ../Common/SmoothNormals.h \
-  ../Mesh/Metric.h ../Mesh/Matrix.h Draw.h ../Common/Views.h \
-  ../Common/ColorTable.h ../Common/Context.h
+Entity.o: Entity.cpp ../Mesh/Mesh.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Simplex.h \
+  ../Mesh/Face.h ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/STL.h \
+  ../Common/VertexArray.h ../Common/SmoothNormals.h ../Mesh/Metric.h \
+  ../Mesh/Matrix.h ../Common/Gmsh.h ../Common/Message.h \
+  ../DataStr/Malloc.h ../DataStr/Tools.h ../Common/GmshUI.h \
+  ../Numeric/Numeric.h Draw.h ../Common/Views.h ../Common/ColorTable.h \
+  ../Common/Context.h
 ReadImg.o: ReadImg.cpp ReadImg.h ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h \
diff --git a/Parser/Makefile b/Parser/Makefile
index 2424a98fad1fcdeb8461a5eb9bb1e0a587d458b8..af544b8c96c7ed395ef2dfac8fc267bfbd41c2bd 100644
--- a/Parser/Makefile
+++ b/Parser/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.61 2004-08-09 10:32:33 geuzaine Exp $
+# $Id: Makefile,v 1.62 2004-09-25 06:16:14 geuzaine Exp $
 #
 # Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle
 #
@@ -90,5 +90,5 @@ OpenFile.o: OpenFile.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../Geo/ExtrudeParams.h ../Mesh/STL.h ../Mesh/Metric.h ../Mesh/Matrix.h \
   ../Geo/MinMax.h ../Common/Visibility.h ../Graphics/ReadImg.h \
   ../Common/GmshUI.h ../Graphics/Draw.h ../Fltk/GUI.h \
-  ../Fltk/Opengl_Window.h ../Fltk/Colorbar_Window.h
+  ../Fltk/Opengl_Window.h ../Fltk/Colorbar_Window.h ../Fltk/File_Picker.h
 FunctionManager.o: FunctionManager.cpp FunctionManager.h
diff --git a/Plugin/Makefile b/Plugin/Makefile
index 3e3d4a6b9142f8d38aef46f0f889af04c361fdc7..69175b08962ca0eef7dfa268c438ca0919ffc6f6 100644
--- a/Plugin/Makefile
+++ b/Plugin/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.54 2004-08-09 10:32:33 geuzaine Exp $
+# $Id: Makefile,v 1.55 2004-09-25 06:16:14 geuzaine Exp $
 #
 # Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle
 #
@@ -75,7 +75,7 @@ Plugin.o: Plugin.cpp Plugin.h ../Common/Options.h ../Common/Message.h \
   SphericalRaise.h DisplacementRaise.h StructuralSolver.h ../Geo/Geo.h \
   ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Simplex.h \
   ../Mesh/Face.h ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/STL.h \
-  ../Mesh/Metric.h ../Mesh/Matrix.h Evaluate.h
+  ../Mesh/Metric.h ../Mesh/Matrix.h ../Common/GmshUI.h Evaluate.h
 Levelset.o: Levelset.cpp Levelset.h Plugin.h ../Common/Options.h \
   ../Common/Message.h ../Common/Views.h ../Common/ColorTable.h \
   ../DataStr/List.h ../Common/VertexArray.h ../Common/SmoothNormals.h \
@@ -145,8 +145,9 @@ StructuralSolver.o: StructuralSolver.cpp StructuralSolver.h ../Geo/Geo.h \
   ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/STL.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h ../Mesh/Metric.h \
   ../Mesh/Matrix.h Plugin.h ../Common/Options.h ../Common/Message.h \
-  ../Common/Views.h ../Common/ColorTable.h ../Common/Context.h \
-  ../DataStr/Tools.h ../Graphics/Draw.h
+  ../Common/Views.h ../Common/ColorTable.h ../Common/GmshUI.h \
+  ../Common/Context.h ../DataStr/Tools.h ../Graphics/Draw.h \
+  ../Mesh/Utils.h ../Numeric/Numeric.h
 Skin.o: Skin.cpp Plugin.h ../Common/Options.h ../Common/Message.h \
   ../Common/Views.h ../Common/ColorTable.h ../DataStr/List.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h Skin.h \