Index: toltcl/generic/tolaccess.cpp
===================================================================
--- toltcl/generic/tolaccess.cpp	(revision 904521eac0de0fb8b92cd1809fd95983f50b3676)
+++ toltcl/generic/tolaccess.cpp	(revision eb212772f7435bd586fe845b3ce9cabfbf481d1e)
@@ -634,29 +634,38 @@
       }
     } else {
-      if (n==2) {
-        // look global var in grammar
-        BGrammar * gra;
-        gra = BGrammar::FindByName(type);
-        if (!gra) {
-          Tcl_AppendStringsToObj(obj_result, "\"",
-			                           type,
-			                           "\" isn't a grammar", NULL);
-          return NULL;
+      if ( n==2 ) {
+        if ( !strcasecmp( type, "ADDRESS" ) ) {
+          return
+            BSyntaxObject::GetObjectFromAddress( Tcl_GetString( items[1] ) );
+        } else {
+          // look global var in grammar
+          BGrammar * gra;
+          gra = BGrammar::FindByName(type);
+          if (!gra) {
+            Tcl_AppendStringsToObj(obj_result, "\"",
+                                   type,
+                                   "\" isn't a grammar", NULL);
+            return NULL;
+          }
+          Tcl_DString dstr;
+          Tcl_DStringInit(&dstr);
+          Tcl_UtfToExternalDString(NULL,Tcl_GetString(items[1]),-1,&dstr);
+          if (!(syn = gra->FINDVARIABLE(Tcl_DStringValue(&dstr))))
+            Tcl_AppendStringsToObj(obj_result, "variable '",
+                                   obj_ref, "' not found in grammar '",
+                                   gra->Name().String(), "'", NULL);
+          Tcl_DStringFree(&dstr);
+          /* found and matched */
+          return syn;
         }
-        Tcl_DString dstr;
-        Tcl_DStringInit(&dstr);
-        Tcl_UtfToExternalDString(NULL,Tcl_GetString(items[1]),-1,&dstr);
-        if (!(syn = gra->FINDVARIABLE(Tcl_DStringValue(&dstr))))
-          Tcl_AppendStringsToObj(obj_result, "variable '",
-                                 obj_ref, "' not found in grammar '",
-                                 gra->Name().String(), "'", NULL);
-        Tcl_DStringFree(&dstr);
-        /* found and matched */
-        return syn;
+      } else {
+        Tcl_AppendStringsToObj(obj_result,
+                               "invalid object reference in ResolveObject",
+                               NULL);
       }
     }
   } else {
       Tcl_AppendStringsToObj(obj_result,
-                             "incorrect object reference in ResolveObject",
+                             "invalid object reference in ResolveObject",
                              NULL);
   }
