Index: generic/nsf.c =================================================================== diff -u -rb4c1e40335b8210a65b8a7a560d7d69a38febbbd -r618e2ee5017eb139591870f9f521b971bb16bbc2 --- generic/nsf.c (.../nsf.c) (revision b4c1e40335b8210a65b8a7a560d7d69a38febbbd) +++ generic/nsf.c (.../nsf.c) (revision 618e2ee5017eb139591870f9f521b971bb16bbc2) @@ -10382,9 +10382,9 @@ CONST char *methodName = MethodName(methodObj); /*fprintf(stderr, "compare unknownObj %p with methodObj %p '%s' %p %p %s -- %s\n", - unknownObj, methodObj, ObjStr(methodObj), delegator, - delegator?objv[1]:NULL, - delegator?ObjStr(objv[1]) : NULL, + unknownObj, methodObj, ObjStr(methodObj), callInfoObj, + callInfoObj?objv[1]:NULL, + callInfoObj?ObjStr(objv[1]) : NULL, methodName);*/ if (unknownObj && methodObj != unknownObj && (flags & NSF_CSC_CALL_NO_UNKNOWN) == 0) { @@ -10424,9 +10424,8 @@ } else { /* no unknown called, this is the built-in unknown handler */ Tcl_Obj *tailMethodObj = NULL; - if (objc > 1) { + if (objc > 1 && ((*methodName) == '-' || (unknownObj && objv[0] == unknownObj))) { int length; - if (Tcl_ListObjLength(interp, objv[1], &length) == TCL_OK && length > 0) { Tcl_ListObjIndex(interp, objv[1], length - 1, &tailMethodObj); } @@ -15628,7 +15627,7 @@ if (result != TCL_OK) { Tcl_Obj *res = Tcl_DuplicateObj(Tcl_GetObjResult(interp)); /* save the result */ INCR_REF_COUNT(res); - NsfPrintError(interp, "%s during '%s.%s", ObjStr(res), ObjectName(object), methodName); + NsfPrintError(interp, "%s during '%s.%s'", ObjStr(res), ObjectName(object), methodName); DECR_REF_COUNT(res); } Index: tests/parameters.test =================================================================== diff -u -r9a0b8bb0992be0561d8187c275fc1d9b7e0bbcd0 -r618e2ee5017eb139591870f9f521b971bb16bbc2 --- tests/parameters.test (.../parameters.test) (revision 9a0b8bb0992be0561d8187c275fc1d9b7e0bbcd0) +++ tests/parameters.test (.../parameters.test) (revision 618e2ee5017eb139591870f9f521b971bb16bbc2) @@ -2292,4 +2292,17 @@ C setObjectParams {-second:alias {-first "X"}} ? {[C new -second Y] eval {set :first}} Y "side-effect determines value" -} \ No newline at end of file +} + +nx::Test case xotcl-configure-method { + nx::Test parameter count 1 + + package prefer latest + package req XOTcl 2.0 + + # + # attempt dispatch to unknown method + # + xotcl::Object create o + ? {o configure -order 15} "::o: unable to dispatch method 'order' during '::o.order'" +}