Index: generic/nsf.c =================================================================== diff -u -r16ecd9a1e7a06eb966b2d51d4a1c59457ab25d11 -reaf3e9fdf5dd9b17e58f4d31e9c6a43e0cf907e7 --- generic/nsf.c (.../nsf.c) (revision 16ecd9a1e7a06eb966b2d51d4a1c59457ab25d11) +++ generic/nsf.c (.../nsf.c) (revision eaf3e9fdf5dd9b17e58f4d31e9c6a43e0cf907e7) @@ -1155,7 +1155,6 @@ Tcl_DStringInit(dsPtr); Tcl_DStringAppend(dsPtr, methodName, objNameLength); regObject = GetObjectFromNsName(interp, Tcl_DStringValue(dsPtr), fromClassNS); - /*fprintf(stderr, "GetRegObject %s -> %p\n", Tcl_DStringValue(dsPtr), regObject);*/ if (regObject) { *methodName1 = procName; } @@ -1263,9 +1262,11 @@ } else if (*methodName == ':') { cmd = Tcl_GetCommandFromObj(interp, methodObj); referencedObject = GetRegObject(interp, cmd, methodName, methodName1, fromClassNS); - if (referencedObject) { - *regObject = referencedObject; - *defObject = referencedObject; + *regObject = referencedObject; + *defObject = referencedObject; + if (referencedObject == NULL) { + /* the cmd was not registered on an object or class */ + cmd = NULL; } } else { *methodName1 = methodName; @@ -15412,8 +15413,9 @@ Tcl_DStringInit(dsPtr); cmd = ResolveMethodName(interp, class->nsPtr, methodNameObj, dsPtr, ®Object, &defObject, &methodName1, &fromClassNS); - /*fprintf(stderr, "NsfClassInfoMethodMethod object %p regObject %p defObject %p fromClass %d\n", - &class->object,regObject,defObject,fromClassNS);*/ + /*fprintf(stderr, + "NsfClassInfoMethodMethod object %p regObject %p defObject %p fromClass %d cmd %p\n", + &class->object,regObject,defObject,fromClassNS, cmd);*/ result = ListMethod(interp, regObject ? regObject : &class->object, defObject ? defObject : &class->object,