Index: tol/btol/bgrammar/spfuninst.cpp
===================================================================
--- tol/btol/bgrammar/spfuninst.cpp	(revision 2ed326d54cc9b30a8e368881bb70bc1fbe03e01c)
+++ tol/btol/bgrammar/spfuninst.cpp	(revision 5ae0b15dd1753598964d39466786a358e1b368ba)
@@ -996,5 +996,5 @@
   if(BSpecialFunction::TestNumArg(_name_, 2, nb, 3))
   {
-    BSyntaxObject* desObj = GraText    ()->EvaluateTree(Branch(tre,1));
+    BSyntaxObject* desObj = GraText()->EvaluateTree(Branch(tre,1));
     if(!desObj) { return(NULL); }
     BText desc = Text(desObj);
@@ -1005,31 +1005,31 @@
     {
       tokenName = tokenName.SubString(1,tokenName.Length());
-      obj = FindStruct(tokenName);
+      obj = FindClass(tokenName,-1);
       if(obj && nb==3)
-      {  
+      {
+        BText memberName = BParser::treToken(Branch(tre,3))->Name();
+        if(memberName[0]=='\"')
+        {
+          memberName = memberName.SubString(1,memberName.Length());
+          BClass* cls = (BClass*)obj;
+          if(!cls->PutMemberDescription(memberName, desc, false))
+          {
+            BSpecialFunction::TestResult(_name_,NIL,tre,NIL,BTRUE);
+          }
+          SAFE_DESTROY(desObj,obj);
+          return(NULL);
+        }
+        else
+        {  
+          Error(third_arg_error);
+        }
+      } 
+      else if(nb==3)
+      {
         Error(third_arg_error);
       }
-      if(!obj)
-      {
-        obj = FindClass(tokenName,-1);
-        if(obj && nb==3)
-        {
-          BText memberName = BParser::treToken(Branch(tre,3))->Name();
-          if(memberName[0]=='\"')
-          {
-            memberName = memberName.SubString(1,memberName.Length());
-            BClass* cls = (BClass*)obj;
-            if(!cls->PutMemberDescription(memberName, desc, false))
-            {
-              BSpecialFunction::TestResult(_name_,NIL,tre,NIL,BTRUE);
-            }
-            SAFE_DESTROY(desObj,obj);
-            return(NULL);
-          }
-          else
-          {  
-            Error(third_arg_error);
-          }
-        } 
+      else
+      {
+        obj = gra->LeftEvaluateExpr(tokenName);      
       }
     }
@@ -1040,5 +1040,5 @@
     if(!obj)
     {
-      obj = GraAnything()->LeftEvaluateTree(Branch(tre,2));
+      obj = gra->LeftEvaluateTree(Branch(tre,2));
     };
     BGrammar::PutLast(gra);
