Index: tol/btol/bgrammar/class.cpp
===================================================================
--- tol/btol/bgrammar/class.cpp	(revision 664a9aaf1d978112032c60d402b70252e3816f28)
+++ tol/btol/bgrammar/class.cpp	(revision 3d1e16b0e15ca0ad5fe5c43b535378f6544e45e4)
@@ -138,4 +138,22 @@
     isMethod_ = tok->TokenType()==FUNCTION;
   }
+  else if((tok->TokenType()==BINARY)&&(tok->Name()=="::"))
+  {
+    declaration_ = BParser::Unparse(branch,"","");
+    BText simpleDec = declaration_;
+    isMethod_ = simpleDec.Find('(')>=0;
+    simpleDec.Replace("("," ");
+    simpleDec.Compact();
+    int p0 = simpleDec.Find(' ');
+    if(p0>0)
+    {
+      int p1 = simpleDec.Find(' ', p0+1);
+      if(p1<0) { p1 = simpleDec.Length()+1; }
+      if(p0+1<p1-1)
+      {
+        name_ = simpleDec.SubString(p0+1,p1-1);
+      }
+    }
+  } 
   //Cleaning open and close parenthesis
   if(declaration_[0]=='{')
@@ -530,4 +548,5 @@
     {
       //If it had default value then is replaced by new one
+    //newMbrNum->position_ = mbrNum->position_;
       memberHash_->erase(name);
       assert(!FindMember(name));
@@ -540,4 +559,5 @@
     {
       //If it had no default value then is added the new one
+    //newMbrNum->position_ = mbrNum->position_;
       memberHash_->erase(name);
       assert(!FindMember(name));
@@ -906,5 +926,6 @@
       if(!result)
       {
-        cns = cns->Father(); 
+      //cns = cns->Father(); 
+        cns = NULL;
       }
     }
