Index: generic/nsf.c =================================================================== diff -u -r2d318cb5f4045ac6651c052d27c19fa43c011a2a -r3a3781c587806733d4e772464fb368475425814a --- generic/nsf.c (.../nsf.c) (revision 2d318cb5f4045ac6651c052d27c19fa43c011a2a) +++ generic/nsf.c (.../nsf.c) (revision 3a3781c587806733d4e772464fb368475425814a) @@ -9538,6 +9538,8 @@ cmd = ResolveMethodName(interp, NULL, methodObj, dsPtr, ®Object, &defObject, &methodName1, &fromClassNS); Tcl_DStringFree(dsPtr); + DECR_REF_COUNT(methodObj); + if (cmd) { if (regObject) { if (NsfObjectIsClass(regObject)) { @@ -18098,7 +18100,9 @@ /*fprintf(stderr, "Dispatch obj=%s, cmd m='%s'\n", ObjectName(object), methodName);*/ - if (withIntrinsic + withLocal + withSystem > 1) { + if ((withIntrinsic && withLocal) + || (withIntrinsic && withSystem) + || (withLocal && withSystem)) { return NsfPrintError(interp, "flags '-intrinsic', '-local' and '-system' are mutual exclusive"); } @@ -18396,7 +18400,9 @@ return NsfNoCurrentObjectError(interp, ObjStr(nobjv[0])); } - if (withIntrinsic + withLocal + withSystem > 1) { + if ((withIntrinsic && withLocal) + || (withIntrinsic && withSystem) + || (withLocal && withSystem)) { return NsfPrintError(interp, "flags '-intrinsic', '-local' and '-system' are mutual exclusive"); }