Index: generic/nsf.c =================================================================== diff -u -N -r71dcbd9cdd5b6d564c0c1c831825e2579f1abb46 -r404b55935a5b1650bed72125c793906f44074533 --- generic/nsf.c (.../nsf.c) (revision 71dcbd9cdd5b6d564c0c1c831825e2579f1abb46) +++ generic/nsf.c (.../nsf.c) (revision 404b55935a5b1650bed72125c793906f44074533) @@ -18049,7 +18049,7 @@ cscPtr = CallStackFindEnsembleCsc(framePtr, &framePtr); assert(cscPtr != NULL); inEnsemble = 1; - *methodNamePtr = ObjStr(cscPtr->objv[0]); + *methodNamePtr = MethodName(cscPtr->objv[0]); } else { inEnsemble = 0; *methodNamePtr = Tcl_GetCommandName(interp, cscPtr->cmdPtr); Index: tests/submethods.test =================================================================== diff -u -N -r5a162b098b6a9550218646d470b274769bda8da1 -r404b55935a5b1650bed72125c793906f44074533 --- tests/submethods.test (.../submethods.test) (revision 5a162b098b6a9550218646d470b274769bda8da1) +++ tests/submethods.test (.../submethods.test) (revision 404b55935a5b1650bed72125c793906f44074533) @@ -887,6 +887,27 @@ ? {o1 bar x y z} "bar/2" } +nx::test case ensemble-next-vs-colon-dispatch { + nx::Class create A { + :method "x s" args { + next + return [current class] + } + } + + nx::Class create B -superclasses A { + :public method "x s" args { + return [list [current class] {*}[next]] + } + :create b + } + + set sc "::B ::A" + ? {b eval { :x s }} $sc + ? {b eval { : x s }} $sc + ? {b x s} $sc +} + # # Local variables: # mode: tcl