diff --git a/Fltk/Makefile b/Fltk/Makefile
index 8c3a0f335ec897d9233c6af376b4d27d4054e3bb..76e281ac20c2d719dd96c52b6aef3ea61a44a938 100644
--- a/Fltk/Makefile
+++ b/Fltk/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.12 2001-02-20 18:32:58 geuzaine Exp $
+# $Id: Makefile,v 1.13 2001-03-04 22:58:17 remacle Exp $
 #
 # Makefile for "libFltk.a"
 #
@@ -12,7 +12,7 @@ RANLIB   = ranlib
 
 LIB      = ../lib/libFltk.a
 INCLUDE  = -I../Common -I../DataStr -I../Graphics -I../Geo\
-           -I../Mesh -I../Parser -I../Fltk
+           -I../Mesh -I../Parser -I../Fltk -I../Plugin
 
 C_FLAGS       = -g -Wall
 OS_FLAGS      = -D_LITTLE_ENDIAN
diff --git a/Plugin/Cutplane/CutPlane.cpp b/Plugin/Cutplane/CutPlane.cpp
index 618456f0e10a7999712921b91f3b8b638644c85f..15d68020831597eee8774184bb44a03a7c9031b3 100644
--- a/Plugin/Cutplane/CutPlane.cpp
+++ b/Plugin/Cutplane/CutPlane.cpp
@@ -3,11 +3,12 @@
 /*
   Plugin Entry : GMSH_RegisterPlugin
  */
-
+extern "C"{
 GMSH_Plugin *GMSH_RegisterPlugin ()
 {
   return new GMSH_CutPlanePlugin (1.0,0.0,0.0,0.0);
 }
+}
 
 GMSH_CutPlanePlugin::GMSH_CutPlanePlugin(double A, double B, double C, double D)
   :a(A),b(B),c(C),d(D)
diff --git a/Plugin/Cutplane/Makefile b/Plugin/Cutplane/Makefile
index 0353e3e665d300b128d2bc3f4c200ad5bec29ca9..b0b4438a1e407188f73527420c975060b3c28a0d 100644
--- a/Plugin/Cutplane/Makefile
+++ b/Plugin/Cutplane/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.1 2001-03-04 20:57:49 remacle Exp $
+# $Id: Makefile,v 1.2 2001-03-04 22:57:36 remacle Exp $
 #
 # Makefile for "libAdapt.a"
 #
@@ -6,7 +6,7 @@
 .IGNORE:
 
 CC        = c++
-AR        = c++ -shared -o
+AR        = c++ -Wl,--subsystem,windows -shared -o
 RM        = rm
 RANLIB    = ranlib
 
diff --git a/Plugin/Plugin.cpp b/Plugin/Plugin.cpp
index deeb83565128b360fdea88c1635b842201414a87..1dc7774ebeaae3bc50af7bcbab0c30c3e7d8090c 100644
--- a/Plugin/Plugin.cpp
+++ b/Plugin/Plugin.cpp
@@ -5,6 +5,8 @@
 #include "Message.h"
 using namespace std;
 
+const char *GMSH_PluginEntry = "GMSH_RegisterPlugin";
+
 #if defined(WIN32) && !defined(__CYGWIN__)
 #define SLASH "\\"
 #else
@@ -49,7 +51,6 @@ GMSH_PluginManager* GMSH_PluginManager::Instance()
   if(!instance)
     {
       instance = new GMSH_PluginManager;
-      instance->RegisterDefaultPlugins();
     }
   return instance;
 }
@@ -57,7 +58,8 @@ GMSH_PluginManager* GMSH_PluginManager::Instance()
 void GMSH_PluginManager::RegisterDefaultPlugins()
 {
   // For testing
-  AddPlugin ("/cygdrive/c/develop/gmsh/Plugin/lib/","libCutPlane");
+
+  AddPlugin ("/cygdrive/c/develop/gmsh/Plugin/lib","libCutPlane");
   return;
   char *homeplugins = getenv ("GMSHPLUGINSHOME");
   if(!homeplugins)return;
@@ -72,10 +74,13 @@ void GMSH_PluginManager::AddPlugin( char *dirName, char *pluginName)
 #else
   char dynamic_lib[1024];
   char plugin_name[256];
+  char plugin_author[256];
+  char plugin_copyright[256];
+  char plugin_help[256];
   class GMSH_Plugin* (*RegisterPlugin)(void);
   sprintf(dynamic_lib,"%s%s%s.so",dirName,SLASH,pluginName);
   Msg(INFO,"Opening Plugin %s",dynamic_lib);
-  void *hlib = dlopen (dynamic_lib,RTLD_NOW);
+  void *hlib = dlopen (dynamic_lib,RTLD_LAZY);
   char *err = dlerror();
   if(hlib == NULL)
     {
@@ -93,12 +98,17 @@ void GMSH_PluginManager::AddPlugin( char *dirName, char *pluginName)
   GMSH_Plugin *p = RegisterPlugin();
   p->hlib = hlib;
   p->getName(plugin_name);
+  p->getInfos(plugin_author,plugin_copyright,plugin_help);
   if(allPlugins->find(plugin_name) != allPlugins->end())
     {
       Msg(WARNING,"Plugin %s Multiply defined",pluginName);
       return;
     }
   allPlugins->m[plugin_name] = p;
+  Msg(INFO,"Plugin name : %s",plugin_name);
+  Msg(INFO,"Plugin author : %s",plugin_author);
+  Msg(INFO,"Plugin copyright : %s",plugin_copyright);
+  Msg(INFO,"Plugin help : %s",plugin_help);
 #endif
 }
 
diff --git a/Plugin/Plugin.h b/Plugin/Plugin.h
index dfdf148e41eb3b93ee125b6d15f20592df75b650..3b9225d019ca7290921495deb4efc76991d67b9c 100644
--- a/Plugin/Plugin.h
+++ b/Plugin/Plugin.h
@@ -8,7 +8,6 @@
     just throw this, the plugin manager will be able to 
     catch the exception.
 */
-const char *GMSH_PluginEntry = "GMSH_RegisterPlugin";
 
 class PluginContainer;
 class Post_View;
@@ -51,16 +50,16 @@ public:
 
 class GMSH_PluginManager
 {
-/**
-  Registering all default plugins that are in $(GMSHPLUGINSHOME)
-  In fact, we will load all .so files in dir $(GMSHPLUGINSHOME)
-*/
-  void RegisterDefaultPlugins();
   GMSH_PluginManager();
   ~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);