diff --git a/contrib/onelab/python/onelab.py b/contrib/onelab/python/onelab.py
index cabd186d3dea934837fd1d862708bb1e3bfcb5d6..5a2bd7cc042844ea3e520b24317bcd9fddcd79cc 100755
--- a/contrib/onelab/python/onelab.py
+++ b/contrib/onelab/python/onelab.py
@@ -250,6 +250,16 @@ class client :
     self._getParameter(param, warn_if_not_found)
     return param.value
 
+  def getNumberChoices(self, name, warn_if_not_found=True):
+    param = _parameter('number', name=name)
+    self._getParameter(param, warn_if_not_found)
+    return param.choices
+
+  def getStringChoices(self, name, warn_if_not_found=True):
+    param = _parameter('string', name=name)
+    self._getParameter(param, warn_if_not_found)
+    return param.choices
+
   def show(self, name) :
     if not self.socket :
       return
@@ -398,7 +408,7 @@ class client :
         print(line.rstrip())
     result = call.wait()
     if result == 0 :
-      self._send(self._GMSH_INFO, 'call \"' + ''.join(argv) + '\"')
+      self._send(self._GMSH_INFO, 'call \"' + ' '.join(argv) + '\"')
     else :
       self._send(self._GMSH_ERROR, 'call failed !!\n' + call.stderr.read().encode('utf-8'))
       
@@ -434,3 +444,21 @@ class client :
       print(call.stderr.read())
       ##self._send(self._GMSH_ERROR, 'download failed !!\n' + call.stderr.read().encode('utf-8'))
       
+  def solutionFiles(self, list) :
+    self.defineNumber('0Metamodel/9Use restored solution', value=0, choices=[0,1])
+    self.defineString('0Metamodel/9Tag', value='')
+    if list :
+      if self.getNumber('0Metamodel/9Use restored solution') :
+        return self.getStringChoices('0Metamodel/9Solution files')  
+      else :
+        self.setString('0Metamodel/9Solution files', value=list[0],
+                       choices=list, readOnly=1)      
+    return list
+
+  def restoreSolution(self) :
+    return self.getNumber('0Metamodel/9Use restored solution')
+
+  def outputFiles(self, list) :
+    if list :
+      self.setString(self.name+'/9Output files', value=list[0],
+                     choices=list, visible=0)