The attached patch fixes the ERR_EXIT behavior in function calls and "always" statements. The patch does the following: - Revert the following patches, which are based on an unfortunate misunderstanding of the expected behavior of ERR_EXIT: - 50929: fix handling of ERR_RETURN bent by 50928. - 50928: fix tests for 50897, mention behavior change in NEWS - I kept the localoptions fix in one of the tests. - 50897: nonzero status of complex commands should trigger ERR_EXIT - Add saving and restoring of local_noerrexit in doshfunc in exec.c - This fixes the ERR_EXIT behavior in function calls. - Add "this_noerrexit = 1;" at the very end of exectry in loop.c - This makes "always" statements compliant with the exception 3 of the POSIX specification of "set -e". - Add new tests in C03traps.ztst Philippe