Index: generic/nsf.c =================================================================== diff -u -rd9a6fbf56b9559455a3b57a31dcc76b388b2b1ab -rb9e39fb7a7a01c2b07a112700d42060eadde4d8d --- generic/nsf.c (.../nsf.c) (revision d9a6fbf56b9559455a3b57a31dcc76b388b2b1ab) +++ generic/nsf.c (.../nsf.c) (revision b9e39fb7a7a01c2b07a112700d42060eadde4d8d) @@ -12702,13 +12702,17 @@ Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { AliasCmdClientData *tcd = (AliasCmdClientData *)clientData; - NsfObject *self = tcd->object; + NsfObject *self = GetSelfObj(interp); CONST char *methodName = ObjStr(objv[0]); + if (!self) { + return NsfPrintError(interp, "Cannot resolve 'self', " + "probably called outside the context of a Next Scripting Object"); + } - assert(tcd->object == GetSelfObj(interp)); + assert(tcd->object == self); if (self == NULL) { - return NsfDispatchClientDataError(interp, self, "object", + return NsfDispatchClientDataError(interp, tcd->object, "object", Tcl_GetCommandName(interp, tcd->aliasCmd)); } @@ -15423,7 +15427,7 @@ NsfObject *self = GetSelfObj(interp); if (!self) { return NsfPrintError(interp, "Cannot resolve 'self', " - "probably called outside the context of an Next Scripting Object"); + "probably called outside the context of a Next Scripting Object"); } /* fprintf(stderr, "Colon dispatch %s.%s\n", ObjectName(self),ObjStr(nobjv[0]));*/ return ObjectDispatch(self, interp, nobjc, nobjv, NSF_CM_NO_SHIFT); @@ -15880,7 +15884,7 @@ if (!self) { return NsfPrintError(interp, "Cannot resolve 'self', " - "probably called outside the context of an Next Scripting Object"); + "probably called outside the context of a Next Scripting Object"); } if (withLocal) {