diff --git a/Solver/functionSpace.h b/Solver/functionSpace.h
index 5560f086ff2f9a138f0e5c1df8f15a7c5a8145e4..69619b69c0aeba82407fe9fb51cc4d38559c3164 100644
--- a/Solver/functionSpace.h
+++ b/Solver/functionSpace.h
@@ -67,12 +67,13 @@ class FunctionSpaceBase
 {
  public:
   virtual ~FunctionSpaceBase(){}
+	virtual int getId(void) const =0;
   virtual int getNumKeys(MElement *ele) = 0; // if one needs the number of dofs
   virtual void getKeys(MElement *ele, std::vector<Dof> &keys) = 0;
   virtual void getKeysOnVertex(MElement* ele, MVertex* v, const std::vector<int>& comp, std::vector<Dof>& keys){
     Msg::Warning("this function is defined to get Dofs of vertex %d on element %d",v->getNum(),ele->getNum());
   }
-  virtual FunctionSpaceBase* clone(const std::vector<int>& comp) const {return NULL;}
+	virtual FunctionSpaceBase* clone(const int id) const {return NULL;}; // copy space with new Id
 };
 
 template<class T>