diff --git a/Common/onelab.h b/Common/onelab.h
index 2fbcdc3ffa0dfca551071bdb36432fddbfdb8b2e..be36d29587f9f89f98e80a4ca11acd1304c7409f 100644
--- a/Common/onelab.h
+++ b/Common/onelab.h
@@ -235,6 +235,16 @@ namespace onelab{
         out.push_back(getNextToken(msg, first, separator));
       return out;
     }
+    static std::string trim(const std::string &str,
+                            const std::string &whitespace = " \t\n")
+    {
+      std::string::size_type strBegin = str.find_first_not_of(whitespace);
+      if(strBegin == std::string::npos)
+        return ""; // no content
+      std::string::size_type strEnd = str.find_last_not_of(whitespace);
+      std::string::size_type strRange = strEnd - strBegin + 1;
+      return str.substr(strBegin, strRange);
+    }
     std::string sanitize(const std::string &in) const
     {
       std::string out(in);
diff --git a/Fltk/onelabGroup.cpp b/Fltk/onelabGroup.cpp
index 0f117331cdbec54f10fbb538df09fded08e4e4ee..4fa5be1fe0c59418c356fb4e9e8ba3049126303e 100644
--- a/Fltk/onelabGroup.cpp
+++ b/Fltk/onelabGroup.cpp
@@ -666,10 +666,11 @@ static bool serverAction(const std::string &action)
     return true;
   }
   else if(!action.compare(0, 5, "Reset")){ // reset some variables
-    std::vector<std::string> what = onelab::parameter::split(action, ' ');
-    for(unsigned int i = 1; i < what.size(); i++){
-      Msg::Debug("Clearing variable '%s'", what[i].c_str());
-      onelab::server::instance()->clear(what[i]);
+    std::vector<std::string> what = onelab::parameter::split(action.substr(5), ',');
+    for(unsigned int i = 0; i < what.size(); i++){
+      std::string var = onelab::parameter::trim(what[i]);
+      Msg::Debug("Clearing variable '%s'", var.c_str());
+      onelab::server::instance()->clear(var);
     }
     FlGui::instance()->rebuildTree(false);
     return true;
diff --git a/benchmarks/misc/master_slave_variables.geo b/benchmarks/misc/master_slave_variables.geo
index e7a29ffdacac47136631e3d6c552e111c6b5a00b..2bbadc7478200a754abd8f883cf5cf83ce6a7e90 100644
--- a/benchmarks/misc/master_slave_variables.geo
+++ b/benchmarks/misc/master_slave_variables.geo
@@ -3,6 +3,9 @@ DefineConstant[
   b = {a*2, Name "var2", Label "Slave (x 2) variable", ReadOnly 1}
   c = {a*2, Name "var3", Label "Editable slave (x 2) variable"}
   d = {a*2, Name "var4", Label "Standard (x 2) variable"}
+  e = {1, Name "var5", Label "Another master", ServerAction "Reset  var6,  var7 space "}
+  f = {e, Name "var6", Label "Another slave (copy)"}
+  g = {e, Name "var7 space", Label "Another slave (copy)"}
 ];
 
 Printf("a=%g b=%g c=%g d=%g", a, b, c, d);