diff --git a/Common/onelab.h b/Common/onelab.h
index d8103984978d367aa4e7db6528ff6c3e811cae2a..75b0d71e9789904972df19ddf83ca4074f39bf05 100644
--- a/Common/onelab.h
+++ b/Common/onelab.h
@@ -113,10 +113,11 @@ namespace onelab{
         if(out[i] == charSep()) out[i] = ' ';
       return out;
     }
+    std::string getOnelabVersion() const { return "1.0"; }
     virtual std::string toChar() const
     {
       std::ostringstream sstream;
-      sstream << getType() << charSep() 
+      sstream << getOnelabVersion() << charSep() << getType() << charSep() 
               << sanitize(getName()) << charSep() 
               << sanitize(getShortHelp()) << charSep() 
               << sanitize(getHelp()) << charSep() 
@@ -134,6 +135,7 @@ namespace onelab{
     virtual std::string::size_type fromChar(const std::string &msg)
     {
       std::string::size_type pos = 0;
+      if(getNextToken(msg, pos) != getOnelabVersion()) return 0;
       if(getNextToken(msg, pos) != getType()) return 0;
       setName(getNextToken(msg, pos));
       setShortHelp(getNextToken(msg, pos));
@@ -159,10 +161,11 @@ namespace onelab{
       first = (last == std::string::npos) ? last : last + 1;
       return next;
     }
-    static void getTypeAndNameFromChar(const std::string &msg, std::string &type, 
-                                       std::string &name)
+    static void getInfoFromChar(const std::string &msg, std::string &version, 
+                                std::string &type, std::string &name)
     {
       std::string::size_type first = 0;
+      version = getNextToken(msg, first);
       type = getNextToken(msg, first);
       name = getNextToken(msg, first);
     }
diff --git a/Fltk/onelabWindow.cpp b/Fltk/onelabWindow.cpp
index c74e3a0d7e4fbf7f86d58c7959f2b92fcc91782c..cf2f15337c116c9a02d25df55a797fe6c8e055c1 100644
--- a/Fltk/onelabWindow.cpp
+++ b/Fltk/onelabWindow.cpp
@@ -164,8 +164,8 @@ bool onelab::localNetworkClient::run(const std::string &what)
       break;
     case GmshSocket::GMSH_PARAMETER:
       {
-        std::string type, name;
-        onelab::parameter::getTypeAndNameFromChar(message, type, name);
+        std::string version, type, name;
+        onelab::parameter::getInfoFromChar(message, version, type, name);
         if(type == "number"){
           onelab::number p;
           p.fromChar(message);
@@ -182,8 +182,8 @@ bool onelab::localNetworkClient::run(const std::string &what)
       break;
     case GmshSocket::GMSH_PARAMETER_QUERY:
       {
-        std::string type, name, reply;
-        onelab::parameter::getTypeAndNameFromChar(message, type, name);
+        std::string version, type, name, reply;
+        onelab::parameter::getInfoFromChar(message, version, type, name);
         if(type == "number"){
           std::vector<onelab::number> par;
           get(par, name);