diff --git a/Fltk/onelabWindow.cpp b/Fltk/onelabWindow.cpp
index a748d3ddbde94b8240f04a83a3311a4b5b2bfe8f..9cb2d2691a8aae9ecc0ae51cfaaa05a4c58449d0 100644
--- a/Fltk/onelabWindow.cpp
+++ b/Fltk/onelabWindow.cpp
@@ -1336,6 +1336,11 @@ void solver_cb(Fl_Widget *w, void *data)
     onelab_cb(0, (void*)"check");
 }
 
+void flgui_wait_cb(double time)
+{
+  FlGui::instance()->wait(time);
+}
+
 int metamodel_cb(const std::string &name, const std::string &action)
 {
 #if defined(HAVE_ONELAB_METAMODEL)
@@ -1343,7 +1348,7 @@ int metamodel_cb(const std::string &name, const std::string &action)
   if(FlGui::instance()->onelab->isBusy())
     FlGui::instance()->onelab->show();
   else{
-    initializeMetamodel(Msg::GetOnelabClient());
+    initializeMetamodel(Msg::GetOnelabClient(), &flgui_wait_cb);
 
     onelab::number n("IsMetamodel", 1.);
     n.setVisible(false);
diff --git a/contrib/onelab/metamodel.cpp b/contrib/onelab/metamodel.cpp
index 6943690d02c9c7b6565fcef98b0c93aca3d6a5ab..f41a8d9d224cf13599f67209cf829605d4050c4e 100644
--- a/contrib/onelab/metamodel.cpp
+++ b/contrib/onelab/metamodel.cpp
@@ -1,13 +1,16 @@
 #include "OnelabClients.h"
 #include "metamodel.h"
 
-void initializeMetamodel(onelab::client *client)
+void (*my_gui_wait_fct)(double time) = 0;
+
+void initializeMetamodel(onelab::client *client, void (*gui_wait_fct)(double time))
 {
   //called by  "metamodel_cb"
   //copies the Msg::_onelabClient to  OLMsg::_onelabClient
   //This pointer refers to an object of class localGmsh() (cf GmshMessage.cpp)
   //which is a onelab::client with sone Gmsh features (merge and messages).
   OLMsg::SetOnelabClient(client);
+  my_gui_wait_fct = gui_wait_fct;
 }
 
 int metamodel(const std::string &action){
diff --git a/contrib/onelab/metamodel.h b/contrib/onelab/metamodel.h
index 72104246b2eec49cd6a39609ac5ce93385efd3f9..0c5c1152b8e3e0170a618d79a7b5f3edfa3b516c 100644
--- a/contrib/onelab/metamodel.h
+++ b/contrib/onelab/metamodel.h
@@ -3,4 +3,4 @@
 namespace onelab{ class client; }
 
 int metamodel(const std::string &todo);
-void initializeMetamodel(onelab::client *);
+void initializeMetamodel(onelab::client *,  void (*wait)(double time));