NOERREXIT_UNTIL_EXEC is what protects the tests between keywords "if"
and "then" and those between "while" and "do" from triggering
ERR_EXIT.

Really? NOERREXIT_UNTIL_EXEC is only ever set in execif. How can it impact the code of a while statement? There is no trace of it in execwhile. What am I missing?

Philippe