Index: generic/xotcl.c =================================================================== diff -u -rc0b363cae9d43d3cb564b230233cc211470acd7e -r782f6b060b16282799fe936bc528f512e562362a --- generic/xotcl.c (.../xotcl.c) (revision c0b363cae9d43d3cb564b230233cc211470acd7e) +++ generic/xotcl.c (.../xotcl.c) (revision 782f6b060b16282799fe936bc528f512e562362a) @@ -9650,7 +9650,7 @@ } static int -ArgumentCheckHelper(Tcl_Interp *interp, Tcl_Obj *objPtr, struct XOTclParam CONST *pPtr, +ArgumentCheckHelper(Tcl_Interp *interp, Tcl_Obj *objPtr, struct XOTclParam CONST *pPtr, int *flags, ClientData *clientData, Tcl_Obj **outObjPtr) { int objc, i, result; Tcl_Obj **ov; @@ -9678,6 +9678,7 @@ ObjStr(resultObj), (char *) NULL); DECR_REF_COUNT(resultObj); DECR_REF_COUNT(*outObjPtr); + *flags &= ~XOTCL_PC_MUST_DECR; break; } } @@ -9717,7 +9718,7 @@ /*fprintf(stderr, "switch to output list construction for value %s\n", ObjStr(elementObjPtr));*/ *flags |= XOTCL_PC_MUST_DECR; - result = ArgumentCheckHelper(interp, objPtr, pPtr, clientData, outObjPtr); + result = ArgumentCheckHelper(interp, objPtr, pPtr, flags, clientData, outObjPtr); break; } } else {