diff --git a/contrib/onelab/python/onelab.py b/contrib/onelab/python/onelab.py
index f27f848d7be09e88aedbe665e2f79c91bd9a8439..287915896caed25be9fcdb380fb832f9053cefdf 100755
--- a/contrib/onelab/python/onelab.py
+++ b/contrib/onelab/python/onelab.py
@@ -346,7 +346,7 @@ class client :
         self.addr = sys.argv[i + 2]
         self._createSocket()
         self._send(self._GMSH_START, str(os.getpid()))
-    self.action = self.getString('python/Action')
+    self.action = self.getString(self.name + '/Action')
     self.setNumber('IsPyMetamodel',value=1,visible=0)
     if self.action == "initialize": exit(0)
 
diff --git a/utils/solvers/python/pend.py b/utils/solvers/python/pend.py
index 0a70ac9cc2ce2d191e987ecdeccd80e729f4b305..c70f06a5cf7409baaabd6a55746cd5bd3a652b0a 100755
--- a/utils/solvers/python/pend.py
+++ b/utils/solvers/python/pend.py
@@ -1,6 +1,9 @@
 #!/usr/bin/env python
 #coding=utf-8
 
+# 1) launch "gmsh pend.py"
+# 2) there is no 2... :-)
+
 import onelab
 import math, os
 
@@ -32,7 +35,7 @@ g = 9.8	# acceleration of gravity
 m = 0.3 # mass of pendulum balls
 
 l = OL.defineNumber('Geom/Length', value=1.0, label='Arm length [m]')
-time = OL.defineNumber('Dyna/time', label='time [s]')
+time = OL.defineNumber('Dyna/time', value=0.0, label='time [s]')
 dt = OL.defineNumber('Dyna/dt', value=0.001, label='time step [s]')
 tmax = OL.defineNumber('Dyna/tmax', value=20, label='max time [s]')
 refresh = OL.defineNumber('Dyna/refresh', value=0.05, label='refresh interval [s]')
@@ -53,9 +56,9 @@ theta = theta0 / 180.*math.pi;
 phi = phi0 / 180.*math.pi;
 theta_dot = 0.0
 phi_dot = 0.0
-time = 0.0
 refr = 0.0
 iter = 0
+time = 0.0
 
 while (time < tmax):
    delta = phi - theta
@@ -91,25 +94,30 @@ while (time < tmax):
 
    if refr >= refresh:
       refr = 0
-      OL.setNumber('python/Progress', value=time, min=0, max=tmax, visible=0)
+      OL.setNumber(OL.name + '/Progress', value=time, min=0, max=tmax, visible=0)
       OL.setNumber('Dyna/time', value=time)
       OL.setNumber('Solu/phi', value=phi)
-      OL.setNumber('Solu/theta', value=theta)
       OL.addNumberChoice('Solu/phi', phi)
+      OL.setNumber('Solu/theta', value=theta)
       OL.addNumberChoice('Solu/theta', theta)
       OL.setNumber('Solu/phi_dot', value=phi_dot)
-      OL.setNumber('Solu/theta_dot', value=theta_dot)
       OL.addNumberChoice('Solu/phi_dot', phi_dot)
+      OL.setNumber('Solu/theta_dot', value=theta_dot)
       OL.addNumberChoice('Solu/theta_dot', theta_dot)
+
+      # ask Gmsh to refresh
       OL.setString('Gmsh/Action', value='refresh')
-      if(OL.getString('python/Action') == 'stop'):
+
+      # stop if we are asked to (by Gmsh)
+      if(OL.getString(OL.name + '/Action') == 'stop'):
          break;
+
       exportMsh(l1, l2)
       exportIter(iter, time, x1, y1+l1, x2, y2+l1+l2)
       OL.mergeFile(onelab.path(__file__, 'pend.msh'))
       iter += 1
 
-OL.setNumber('python/Progress', value=0)
+OL.setNumber(OL.name + '/Progress', value=0)
 
 # comment the following lines out if you do not have gnuplot on your system
 # OL.preProcess(onelab.path(__file__,'pend.plt.ol'))