Index: generic/nsf.c =================================================================== diff -u -r9124d823b4eb4a8b5969b9fa1b6eab7252ba83b4 -r364a9eda329acd7d20173a4165d71394d3061aae --- generic/nsf.c (.../nsf.c) (revision 9124d823b4eb4a8b5969b9fa1b6eab7252ba83b4) +++ generic/nsf.c (.../nsf.c) (revision 364a9eda329acd7d20173a4165d71394d3061aae) @@ -16412,11 +16412,12 @@ *outObjPtr = objPtr; /* - * If argument checking is turned off, and we do not have an converter, do - * nothing. + * Omit argument checking, provided that ... + * ... argument checking is turned off *and* no converter is specified, or + * ... the ruling parameter option is 'initcmd' */ - if (unlikely(doCheck == 0) && (pPtr->flags & (NSF_ARG_IS_CONVERTER|NSF_ARG_INITCMD)) == 0) { - /*fprintf(stderr, "*** omit argument check for arg %s flags %.6x\n", pPtr->name, pPtr->flags);*/ + if ((unlikely(doCheck == 0) && (pPtr->flags & (NSF_ARG_IS_CONVERTER)) == 0) || (pPtr->flags & (NSF_ARG_INITCMD))) { + /* fprintf(stderr, "*** omit argument check for arg %s flags %.6x\n", pPtr->name, pPtr->flags); */ *clientData = ObjStr(objPtr); return TCL_OK; }