diff --git a/Adapt/Makefile b/Adapt/Makefile
index a49d01e972926cfa370d3b19e817fbdf43768241..202dd45fe6f71a3624ab7fd4e5e79c61f3f47de5 100644
--- a/Adapt/Makefile
+++ b/Adapt/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.12 2001-02-18 18:04:03 geuzaine Exp $
+# $Id: Makefile,v 1.13 2001-03-05 23:14:57 remacle Exp $
 #
 # Makefile for "libAdapt.a"
 #
@@ -59,8 +59,9 @@ depend:
 
 # DO NOT DELETE THIS LINE
 Adapt.o: Adapt.cpp ../Common/Gmsh.h ../Common/Message.h \
-  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
-  ../DataStr/avl.h ../DataStr/Tools.h Adapt.h nrutil.h ../Common/Const.h
+ ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+ ../DataStr/avl.h ../DataStr/Tools.h Adapt.h nrutil.h \
+ ../Common/Const.h
 mnbrak.o: mnbrak.cpp nrutil.h ../Common/Const.h
 brent.o: brent.cpp nrutil.h ../Common/Const.h
 nrutil.o: nrutil.cpp
diff --git a/Common/DefaultOptions.h b/Common/DefaultOptions.h
index d111d8a92058b97a26b35963cf151ecdcaf112c7..d51c4463fa51e62847793bebe80a3281b4b22932 100644
--- a/Common/DefaultOptions.h
+++ b/Common/DefaultOptions.h
@@ -217,7 +217,7 @@ StringXNumber MeshOptions_Number[] = {
 StringXNumber PostProcessingOptions_Number[] = {
   { F|O, "Scales" , opt_post_scales , 1. }, 
   { F|O, "Link" , opt_post_link , 0. }, 
-  { F|O, "Smoothing" , opt_post_smooth , 0. }, 
+  { F|O, "Smoothing" , opt_post_smooth , 1. }, 
   { F|O, "AnimationDelay" , opt_post_anim_delay , 0.25 }, 
   { F, "NbViews" , opt_post_nb_views , 0. }, 
   { 0, NULL , NULL , 0. }
diff --git a/Common/Makefile b/Common/Makefile
index d8a2bb6289e6ad9476830b0cbd05006c98691830..b366438b2a614734487b321d1c2e781677c9aeef 100644
--- a/Common/Makefile
+++ b/Common/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.15 2001-02-18 18:04:03 geuzaine Exp $
+# $Id: Makefile,v 1.16 2001-03-05 23:14:57 remacle Exp $
 #
 # Makefile for "libCommon.a"
 #
@@ -60,29 +60,30 @@ depend:
 
 # DO NOT DELETE THIS LINE
 Context.o: Context.cpp Gmsh.h Message.h ../DataStr/Malloc.h \
-  ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \
-  Const.h ../Geo/Geo.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
-  ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/Metric.h \
-  ../Graphics/Draw.h ../Common/Views.h ../Common/Const.h \
-  ../Common/ColorTable.h Context.h Options.h DefaultOptions.h trackball.c \
-  trackball.h
-Views.o: Views.cpp Gmsh.h Message.h ../DataStr/Malloc.h ../DataStr/List.h \
-  ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h Views.h Const.h \
-  ColorTable.h Context.h Options.h
+ ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h \
+ ../DataStr/Tools.h Const.h ../Geo/Geo.h ../Mesh/Mesh.h \
+ ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
+ ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Graphics/Draw.h \
+ ../Common/Views.h ../Common/Const.h ../Common/ColorTable.h Context.h \
+ Options.h DefaultOptions.h trackball.c trackball.h
+Views.o: Views.cpp Gmsh.h Message.h ../DataStr/Malloc.h \
+ ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h \
+ ../DataStr/Tools.h Views.h Const.h ColorTable.h Context.h Options.h
 Options.o: Options.cpp Gmsh.h Message.h ../DataStr/Malloc.h \
-  ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \
-  GmshUI.h ../Geo/Geo.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
-  ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/Metric.h \
-  ../Graphics/Draw.h ../Common/Views.h ../Common/Const.h \
-  ../Common/ColorTable.h Context.h Const.h Options.h ../Fltk/GUI.h \
-  ../Fltk/Opengl_Window.h ../Fltk/Colorbar_Window.h
+ ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h \
+ ../DataStr/Tools.h GmshUI.h ../Geo/Geo.h ../Mesh/Mesh.h \
+ ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
+ ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Graphics/Draw.h \
+ ../Common/Views.h ../Common/Const.h ../Common/ColorTable.h Context.h \
+ Const.h Options.h ../Fltk/GUI.h ../Fltk/Opengl_Window.h \
+ ../Fltk/Colorbar_Window.h
 GetOptions.o: GetOptions.cpp Gmsh.h Message.h ../DataStr/Malloc.h \
-  ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \
-  GmshUI.h GmshVersion.h Const.h Context.h Options.h ../Geo/Geo.h \
-  ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
-  ../Geo/ExtrudeParams.h ../Mesh/Metric.h Views.h ColorTable.h \
-  ../Parser/OpenFile.h ../Common/Const.h
+ ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h \
+ ../DataStr/Tools.h GmshUI.h GmshVersion.h Const.h Context.h Options.h \
+ ../Geo/Geo.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
+ ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/Metric.h Views.h \
+ ColorTable.h ../Parser/OpenFile.h ../Common/Const.h
 Timer.o: Timer.cpp
 ColorTable.o: ColorTable.cpp Gmsh.h Message.h ../DataStr/Malloc.h \
-  ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \
-  ColorTable.h Context.h Const.h
+ ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h \
+ ../DataStr/Tools.h ColorTable.h Context.h Const.h
diff --git a/Fltk/Callbacks.cpp b/Fltk/Callbacks.cpp
index f5e9aa7c88a1fbf81b52a5114acc8d33946119db..22f980c7b247f360979c74302177ffb4a6090443 100644
--- a/Fltk/Callbacks.cpp
+++ b/Fltk/Callbacks.cpp
@@ -1,4 +1,4 @@
-// $Id: Callbacks.cpp,v 1.37 2001-02-23 08:18:50 geuzaine Exp $
+// $Id: Callbacks.cpp,v 1.38 2001-03-05 23:14:57 remacle Exp $
 
 #include "Gmsh.h"
 #include "GmshUI.h"
@@ -16,6 +16,7 @@
 #include "Options.h"
 #include "GUI.h"
 #include "Callbacks.h"
+#include "Plugin.h"
 
 #include <FL/fl_file_chooser.H>
 #include <errno.h>
@@ -1444,6 +1445,13 @@ void view_options_cb(CALLBACK_ARGS){
   WID->create_view_options_window((int)data);
 }
 
+void view_plugin_cb(CALLBACK_ARGS){
+  char name[256];
+  GMSH_Plugin *p = (GMSH_Plugin*)data;
+  p->getName(name);
+  Msg(INFO,"Plugin %s called",name);
+}
+
 void view_options_custom_cb(CALLBACK_ARGS){
   if(WID->view_butt[0]->value()){
     WID->view_value[0]->activate();
diff --git a/Fltk/Callbacks.h b/Fltk/Callbacks.h
index 120e7a18e0f6a498ba5c0bdf6257e0dc846ae71a..20897ca07490fda80d42e20ba7d407b0a6a36434 100644
--- a/Fltk/Callbacks.h
+++ b/Fltk/Callbacks.h
@@ -195,6 +195,7 @@ void view_lighting_cb(CALLBACK_ARGS) ;
 void view_elements_cb(CALLBACK_ARGS) ;
 void view_applybgmesh_cb(CALLBACK_ARGS) ;
 void view_options_cb(CALLBACK_ARGS) ;
+void view_plugin_cb(CALLBACK_ARGS) ;
 void view_options_custom_cb(CALLBACK_ARGS) ;
 void view_options_timestep_cb(CALLBACK_ARGS) ;
 void view_options_ok_cb(CALLBACK_ARGS) ;
diff --git a/Fltk/GUI.cpp b/Fltk/GUI.cpp
index 58f85d5b5dc0b65dc7486d43a65785efe9c05915..cdb0cb808e1a07da2f05dbde32827140a0810167 100644
--- a/Fltk/GUI.cpp
+++ b/Fltk/GUI.cpp
@@ -1,10 +1,12 @@
-// $Id: GUI.cpp,v 1.54 2001-03-03 08:44:32 geuzaine Exp $
+// $Id: GUI.cpp,v 1.55 2001-03-05 23:14:57 remacle Exp $
 
 // To make the interface as visually consistent as possible, please:
 // - use the BH, BW, WB, IW values for button heights/widths, window borders, etc.
 // - use CTX.fontsize for font sizes
 // - examine what's already done before adding something new...
 
+#include "PluginManager.h"
+#include "Plugin.h"
 #include "Gmsh.h"
 #include "GmshUI.h"
 #include "GmshVersion.h"
@@ -19,6 +21,7 @@
 #include "Bitmaps.h"
 #include "GetOptions.h"
 
+
 #define WINDOW_BOX FL_FLAT_BOX
 
 #define IW  (10*CTX.fontsize) // input field width
@@ -425,7 +428,7 @@ int GUI::global_shortcuts(int event){
 //***************************** The GUI constructor ************************************
 
 GUI::GUI(int argc, char **argv) {
-
+  
   init_menu_window = 0;
   init_graphic_window = 0;
   init_general_options_window = 0;
@@ -478,7 +481,6 @@ GUI::GUI(int argc, char **argv) {
   create_about_window();
 
   // Draw the scene
-
   g_opengl_window->redraw();
 
 }
@@ -503,6 +505,23 @@ void GUI::wait(){
 
 //********************************* Create the menu window *****************************
 
+void add_post_plugins ( Fl_Menu_Button *button )
+{
+  char name[256],menuname[256];
+  for(GMSH_PluginManager::iter it = GMSH_PluginManager::Instance()->begin();
+      it != GMSH_PluginManager::Instance()->end();
+      ++it)
+    {
+      GMSH_Plugin *p = (*it).second;
+      if(p->getType() == GMSH_Plugin::GMSH_POST_PLUGIN)
+	{
+	  p->getName(name);
+	  sprintf(menuname,"Plugins/%s",name);
+	  button->add(menuname, 0,(Fl_Callback *)view_plugin_cb, (void*)p, 0);
+	}
+    }
+}
+
 void GUI::create_menu_window(int argc, char **argv){
   int i, y;
 
@@ -576,6 +595,7 @@ void GUI::create_menu_window(int argc, char **argv){
 			   (Fl_Callback *)view_applybgmesh_cb, (void*)i, FL_MENU_DIVIDER);
       m_popup_butt[i]->add("Options...", 0,
 			   (Fl_Callback *)view_options_cb, (void*)i, 0);
+      add_post_plugins ( m_popup_butt[i] );
       m_popup_butt[i]->textsize(CTX.fontsize);
       m_popup_butt[i]->hide();
     }
diff --git a/Fltk/Main.cpp b/Fltk/Main.cpp
index 321cb73ad056e3235bb69dc86ac60a28d604464b..3557f90f375cf02be2554085fa78dff27a548dff 100644
--- a/Fltk/Main.cpp
+++ b/Fltk/Main.cpp
@@ -1,7 +1,8 @@
-// $Id: Main.cpp,v 1.19 2001-03-04 22:58:01 remacle Exp $
+// $Id: Main.cpp,v 1.20 2001-03-05 23:14:57 remacle Exp $
 
 #include <signal.h>
 
+#include "PluginManager.h"
 #include "Gmsh.h"
 #include "GmshUI.h"
 #include "GmshVersion.h"
@@ -18,7 +19,6 @@
 #include "GUI.h"
 #include "OpenFile.h"
 #include "GetOptions.h"
-#include "Plugin.h"
 
 GUI *WID = NULL;
 
@@ -46,6 +46,8 @@ int main(int argc, char *argv[]){
   if(CTX.verbosity && CTX.terminal)
     fprintf(stderr, "%s, Version %.2f\n", gmsh_progname, GMSH_VERSION);
 
+  // Register Default Plugins (in test ...)
+  GMSH_PluginManager::Instance()->RegisterDefaultPlugins();
 
   // Initialize the static Mesh
 
@@ -125,9 +127,6 @@ int main(int argc, char *argv[]){
 
   WID->check();
 
-  // Register Default Plugins (in test ...)
-  GMSH_PluginManager::Instance()->RegisterDefaultPlugins();
-
   // Open project file
 
   OpenProblem(CTX.filename);
diff --git a/Geo/Makefile b/Geo/Makefile
index da8bfb4de10878564b5891465d62144932a0db02..65271c72c9d2ea5b74f55ce87345a1249642f5e7 100644
--- a/Geo/Makefile
+++ b/Geo/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.14 2001-02-18 18:04:03 geuzaine Exp $
+# $Id: Makefile,v 1.15 2001-03-05 23:14:57 remacle Exp $
 #
 # Makefile for "libGeo.a"
 #
@@ -57,49 +57,52 @@ depend:
 	$(RM) $(RMFLAGS) Makefile.new
 
 # DO NOT DELETE THIS LINE
-CAD.o: CAD.cpp ../Common/Gmsh.h ../Common/Message.h ../DataStr/Malloc.h \
-  ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \
-  Geo.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
-  ../Geo/ExtrudeParams.h ../Mesh/Metric.h DataBase.h \
-  ../Mesh/Interpolation.h ../Mesh/Numeric.h ../Common/Const.h \
-  ../Mesh/Create.h CAD.h ../Common/Context.h
+CAD.o: CAD.cpp ../Common/Gmsh.h ../Common/Message.h \
+ ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+ ../DataStr/avl.h ../DataStr/Tools.h Geo.h ../Mesh/Mesh.h \
+ ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
+ ../Geo/ExtrudeParams.h ../Mesh/Metric.h DataBase.h \
+ ../Mesh/Interpolation.h ../Mesh/Numeric.h ../Common/Const.h \
+ ../Mesh/Create.h CAD.h ../Common/Context.h
 DataBase.o: DataBase.cpp ../Common/Gmsh.h ../Common/Message.h \
-  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
-  ../DataStr/avl.h ../DataStr/Tools.h ../Common/Const.h Geo.h \
-  ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
-  ../Geo/ExtrudeParams.h ../Mesh/Metric.h CAD.h ../Mesh/Create.h Verif.h \
-  ../Common/Context.h
+ ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+ ../DataStr/avl.h ../DataStr/Tools.h ../Common/Const.h Geo.h \
+ ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
+ ../Geo/ExtrudeParams.h ../Mesh/Metric.h CAD.h ../Mesh/Create.h \
+ Verif.h ../Common/Context.h
 MinMax.o: MinMax.cpp ../Common/Gmsh.h ../Common/Message.h \
-  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
-  ../DataStr/avl.h ../DataStr/Tools.h ../Common/Const.h ../Mesh/Vertex.h \
-  ../Common/Context.h
-ExtrudeParams.o: ExtrudeParams.cpp ../Common/Gmsh.h ../Common/Message.h \
-  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
-  ../DataStr/avl.h ../DataStr/Tools.h Geo.h CAD.h ../Mesh/Mesh.h \
-  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
-  ../Geo/ExtrudeParams.h ../Mesh/Metric.h ExtrudeParams.h
-Geo.o: Geo.cpp ../Common/Gmsh.h ../Common/Message.h ../DataStr/Malloc.h \
-  ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \
-  ../Common/Const.h Geo.h CAD.h ../Mesh/Mesh.h ../Mesh/Vertex.h \
-  ../Mesh/Simplex.h ../Mesh/Edge.h ../Geo/ExtrudeParams.h \
-  ../Mesh/Metric.h DataBase.h ../Parser/Parser.h ../Common/Context.h
+ ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+ ../DataStr/avl.h ../DataStr/Tools.h ../Common/Const.h \
+ ../Mesh/Vertex.h ../Common/Context.h
+ExtrudeParams.o: ExtrudeParams.cpp ../Common/Gmsh.h \
+ ../Common/Message.h ../DataStr/Malloc.h ../DataStr/List.h \
+ ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h Geo.h CAD.h \
+ ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
+ ../Geo/ExtrudeParams.h ../Mesh/Metric.h ExtrudeParams.h
+Geo.o: Geo.cpp ../Common/Gmsh.h ../Common/Message.h \
+ ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+ ../DataStr/avl.h ../DataStr/Tools.h ../Common/Const.h Geo.h CAD.h \
+ ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
+ ../Geo/ExtrudeParams.h ../Mesh/Metric.h DataBase.h ../Parser/Parser.h \
+ ../Common/Context.h
 StepGeomDatabase.o: StepGeomDatabase.cpp ../Common/Gmsh.h \
-  ../Common/Message.h ../DataStr/Malloc.h ../DataStr/List.h \
-  ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h ../Common/Const.h \
-  Geo.h StepGeomDatabase.h DataBase.h ../Common/Context.h
+ ../Common/Message.h ../DataStr/Malloc.h ../DataStr/List.h \
+ ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \
+ ../Common/Const.h Geo.h StepGeomDatabase.h DataBase.h \
+ ../Common/Context.h
 Verif.o: Verif.cpp ../Common/Gmsh.h ../Common/Message.h \
-  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
-  ../DataStr/avl.h ../DataStr/Tools.h Geo.h CAD.h ../Mesh/Mesh.h \
-  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
-  ../Geo/ExtrudeParams.h ../Mesh/Metric.h DataBase.h
+ ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+ ../DataStr/avl.h ../DataStr/Tools.h Geo.h CAD.h ../Mesh/Mesh.h \
+ ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
+ ../Geo/ExtrudeParams.h ../Mesh/Metric.h DataBase.h
 Visibility.o: Visibility.cpp ../Common/Gmsh.h ../Common/Message.h \
-  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
-  ../DataStr/avl.h ../DataStr/Tools.h Geo.h CAD.h ../Mesh/Mesh.h \
-  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
-  ../Geo/ExtrudeParams.h ../Mesh/Metric.h DataBase.h
+ ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+ ../DataStr/avl.h ../DataStr/Tools.h Geo.h CAD.h ../Mesh/Mesh.h \
+ ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
+ ../Geo/ExtrudeParams.h ../Mesh/Metric.h DataBase.h
 Print_Geo.o: Print_Geo.cpp ../Common/Gmsh.h ../Common/Message.h \
-  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
-  ../DataStr/avl.h ../DataStr/Tools.h Geo.h ../Mesh/Mesh.h \
-  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
-  ../Geo/ExtrudeParams.h ../Mesh/Metric.h CAD.h ../Common/Context.h \
-  ../Common/Const.h
+ ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+ ../DataStr/avl.h ../DataStr/Tools.h Geo.h ../Mesh/Mesh.h \
+ ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
+ ../Geo/ExtrudeParams.h ../Mesh/Metric.h CAD.h ../Common/Context.h \
+ ../Common/Const.h
diff --git a/Makefile b/Makefile
index 126873a694d88856816b19e3cbf5bfb7a1d2368c..25ec4993ad5f3ec982368b72bc73786762589b32 100644
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.73 2001-03-05 23:04:49 bechet Exp $
+# $Id: Makefile,v 1.74 2001-03-05 23:13:02 remacle Exp $
 # ----------------------------------------------------------------------
 #  Makefile for Gmsh  
 # ----------------------------------------------------------------------
@@ -470,19 +470,19 @@ fltk_cygwin: tag
 	g++ -Wl,--subsystem,windows -o $(GMSH_BIN_DIR)/gmsh.exe $(GMSH_FLTK_LIB) \
                  $(HOME)/SOURCES/fltk/lib/libfltk.a -lglu32 -lopengl32 -lgdi32 -lwsock32 -lm
 	strip $(GMSH_BIN_DIR)/gmsh.exe
-
-fltk_cygwin_gertha_buro: tag
-	@for i in $(GMSH_FLTK_DIR); do (cd $$i && $(MAKE) \
-           "CC=g++" \
-           "C_FLAGS=-O2 -DWIN32" \
-           "OS_FLAGS=-D_LITTLE_ENDIAN" \
-           "VERSION_FLAGS=-D_FLTK" \
-           "GL_INCLUDE=$(OPENGL_INC)" \
-           "GUI_INCLUDE=$(FLTK_INC_GERTHA_BURO)" \
-        ); done
-	g++ -Wl,--subsystem,windows -o $(GMSH_BIN_DIR)/gmsh.exe $(GMSH_FLTK_LIB) \
-                 ../fltk/lib/libfltk.a -lglu32 -lopengl32 -lgdi32 -lwsock32 -lm
-	strip $(GMSH_BIN_DIR)/gmsh.exe
+
+fltk_cygwin_gertha_buro: tag
+	@for i in $(GMSH_FLTK_DIR); do (cd $$i && $(MAKE) \
+           "CC=g++" \
+           "C_FLAGS=-O2 -DWIN32" \
+           "OS_FLAGS=-D_LITTLE_ENDIAN" \
+           "VERSION_FLAGS=-D_FLTK" \
+           "GL_INCLUDE=$(OPENGL_INC)" \
+           "GUI_INCLUDE=$(FLTK_INC_GERTHA_BURO)" \
+        ); done
+	g++ -Wl,--subsystem,windows -o $(GMSH_BIN_DIR)/gmsh.exe $(GMSH_FLTK_LIB) \
+                 ../fltk/lib/libfltk.a -lglu32 -lopengl32 -lgdi32 -lwsock32 -lm
+	strip $(GMSH_BIN_DIR)/gmsh.exe
 
 fltk_cygwin_laptopjf: 
 	@for i in $(GMSH_FLTK_DIR); do (cd $$i && $(MAKE) \
diff --git a/Plugin/Cutplane/Makefile b/Plugin/Cutplane/Makefile
index b0b4438a1e407188f73527420c975060b3c28a0d..5a71d9ea476f83747f0d183c5cd2723eb00d9685 100644
--- a/Plugin/Cutplane/Makefile
+++ b/Plugin/Cutplane/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.2 2001-03-04 22:57:36 remacle Exp $
+# $Id: Makefile,v 1.3 2001-03-05 23:14:57 remacle Exp $
 #
 # Makefile for "libAdapt.a"
 #
@@ -47,3 +47,4 @@ depend:
 	$(RM) $(RMFLAGS) Makefile.new
 
 # DO NOT DELETE THIS LINE
+CutPlane.o: CutPlane.cpp CutPlane.h ../Plugin.h
diff --git a/Plugin/Plugin.cpp b/Plugin/Plugin.cpp
index c1f7a651a5fae0f17f878e626a644d96ccaa311d..9507cb6dec30c65223083b9b4e5a1cbfdfd09f55 100644
--- a/Plugin/Plugin.cpp
+++ b/Plugin/Plugin.cpp
@@ -2,6 +2,7 @@
 #include <dlfcn.h>
 #include <map>
 #include "Plugin.h"
+#include "PluginManager.h"
 #include "Message.h"
 #include <FL/filename.H>
 using namespace std;
@@ -14,37 +15,18 @@ const char *GMSH_PluginEntry = "GMSH_RegisterPlugin";
 #define SLASH "/"
 #endif
 
-struct ltstr
-{
-  bool operator()(const char* s1, const char* s2) const
-  {
-    return strcmp(s1, s2) < 0;
-  }
-};
-
-class PluginContainer
-{
-public :
-  typedef map<char*,GMSH_Plugin*,ltstr>::iterator iter;
-  map<char*,GMSH_Plugin*,ltstr> m;
-  iter begin() {return m.begin();}
-  iter end() {return m.end();}
-  iter find(char *c) {return m.find(c);}
-};
 
 GMSH_PluginManager *GMSH_PluginManager::instance = 0;
 
 GMSH_PluginManager::GMSH_PluginManager()
 {
-  allPlugins = new PluginContainer;
 }
 
 GMSH_PluginManager::~GMSH_PluginManager()
 {
-  for(PluginContainer::iter it = allPlugins->begin();
-      it != allPlugins->end();
+  for(iter it = allPlugins.begin();
+      it != allPlugins.end();
       ++it)delete (*it).second;
-  delete allPlugins;
 }
 
 GMSH_PluginManager* GMSH_PluginManager::Instance()
@@ -115,12 +97,12 @@ void GMSH_PluginManager::AddPlugin( char *dirName, char *pluginName)
   p->hlib = hlib;
   p->getName(plugin_name);
   p->getInfos(plugin_author,plugin_copyright,plugin_help);
-  if(allPlugins->find(plugin_name) != allPlugins->end())
+  if(allPlugins.find(plugin_name) != allPlugins.end())
     {
       Msg(WARNING,"Plugin %s Multiply defined",pluginName);
       return;
     }
-  allPlugins->m[plugin_name] = p;
+  allPlugins.insert(std::pair<char*,GMSH_Plugin*>(plugin_name,p));
   Msg(INFO,"Plugin name : %s",plugin_name);
   Msg(INFO,"Plugin author : %s",plugin_author);
   Msg(INFO,"Plugin copyright : %s",plugin_copyright);
diff --git a/Plugin/Plugin.h b/Plugin/Plugin.h
index fff007b00d38a3c3b7c75f429718b5f9cf22d109..437c02e37c9ddf9ae5b4ba818bea566ece14deec 100644
--- a/Plugin/Plugin.h
+++ b/Plugin/Plugin.h
@@ -9,9 +9,7 @@
     catch the exception.
 */
 
-class PluginContainer;
 class Post_View;
-
 class GMSH_Plugin
 {
 public :
@@ -48,25 +46,6 @@ public:
   virtual Post_View *execute (Post_View *) = 0;
 };
 
-class GMSH_PluginManager
-{
-  GMSH_PluginManager();
-  virtual ~GMSH_PluginManager();
-  static GMSH_PluginManager *instance;
-  PluginContainer* allPlugins;
-public :
-/**
-  Registering all default plugins that are in $(GMSHPLUGINSHOME)
-  In fact, we will load all .so files in dir $(GMSHPLUGINSHOME)
-*/
-  void RegisterDefaultPlugins();
-  static GMSH_PluginManager *Instance();
-  /** Dynamically add a plugin pluginName.so in dirName*/
-  void AddPlugin(char *dirName, char *pluginName);
-  void CallPlugin (char *name);
-  void DestroyPlugin (char *name);
-  void SetPluginOption (char *pluginName, char *option, void *value);
-};
 #endif
 
 
diff --git a/Plugin/PluginManager.h b/Plugin/PluginManager.h
new file mode 100644
index 0000000000000000000000000000000000000000..8190fb6d75dbd6c54fd8b93cc7b2d9c481598de9
--- /dev/null
+++ b/Plugin/PluginManager.h
@@ -0,0 +1,54 @@
+#ifndef _PLUGINMANAGER_H_
+#define _PLUGINMANAGER_H_
+/*
+  The one who intend to create a plugin for gmsh have to 
+    -) Create a dynamin lib (.so) containing 1 symbols
+       GMSH_Plugin * GMSH_RegisterPlugin ();
+    -) When there is an unacceptable error in the plugin,
+    just throw this, the plugin manager will be able to 
+    catch the exception.
+*/
+
+#include <map>
+
+class GMSH_Plugin;
+struct ltstrpg
+{
+  bool operator()(const char* s1, const char* s2) const
+  {
+    return strcmp(s1, s2) < 0;
+  }
+};
+
+class GMSH_PluginManager
+{
+  GMSH_PluginManager();
+  virtual ~GMSH_PluginManager();
+  static GMSH_PluginManager *instance;
+  std::map<char*,GMSH_Plugin*,ltstrpg> allPlugins;
+public :
+  typedef std::map<char*,GMSH_Plugin*,ltstrpg>::iterator iter;
+/**
+  Registering all default plugins that are in $(GMSHPLUGINSHOME)
+  In fact, we will load all .so files in dir $(GMSHPLUGINSHOME)
+*/
+  void RegisterDefaultPlugins();
+  static GMSH_PluginManager *Instance();
+  /** Dynamically add a plugin pluginName.so in dirName*/
+  void AddPlugin(char *dirName, char *pluginName);
+  void CallPlugin (char *name);
+  void DestroyPlugin (char *name);
+  void StPluginOption (char *pluginName, char *option, void *value);
+  iter begin() {return allPlugins.begin();}
+  iter end() {return allPlugins.end();}
+  iter find(char *c) {return allPlugins.find(c);}
+};
+#endif
+
+
+
+
+
+
+
+
diff --git a/jpeg/jmorecfg.h b/jpeg/jmorecfg.h
index e7a1a0d2bfa39ac071aa8f8560e883f1defed8af..b3d2baa184b4b22320305a828feed4e35fbf3cec 100644
--- a/jpeg/jmorecfg.h
+++ b/jpeg/jmorecfg.h
@@ -157,11 +157,11 @@ typedef short INT16;
 
 /* INT32 must hold at least signed 32-bit values. */
 
-#ifndef WIN32
+#ifndef WIN32//geuz
 #ifndef XMD_H			/* X11/xmd.h correctly defines INT32 */
 typedef long INT32;
 #endif
-#endif
+#endif//geuz
 
 /* Datatype used for image dimensions.  The JPEG standard only supports
  * images up to 64K*64K due to 16-bit fields in SOF markers.  Therefore