Hey. Before deciding how this behaviour should be documented, I would rather like to ask to reconsider whether it shouldn't be changed. @Herbert, you've said that you believe dash's behaviour is POSIX compliant. But I still couldn't find anything in the text which would imply this... and Harald who typically knows things quite well also seems to believe that POSIX doesn't allow it. Could you possibly tell exactly from which point(s) in the text you think this follows? If the outcome would indeed be that it's allowed, well then we could go back to documented it. If not - and despite that I don't like the set-e-ignoring at all - I still think there's some points for changing the behaviour to match POSIX: - Even within dash, the behaviour seems already inconsistent, i.e. it does ignore the set-e-ignoring in command substitutions, but not in any other subshells, at least not in ( ) subshell commands, and I think neither in the subshells caused by pipelines. What makes command substitution subshells so special that they deserve it while others don't? - Portability. I think one of the main points for using dash is that unlike other shells it's AFAIK quite close to POSIX sh, thus if anything runs in dash, one can be rather sure it runs in other POSIX compatible shells, too, unless of course one assumes any behaviour where POSIX explicitly leaves choice. If dash deviates from POSIX here, one makes scripts which are written for dash (assuming it to be POSIX compatible) actually non portable, if such script would depend on that behaviour. If changing the behaviour doesn't seem feasible, then I think - in addition improving dash's documentation - one should try to get POSIX changed, by arguing that dash has done it like this forever (not sure if that weighs enough). I could open a ticket at the Austin Group, but a) it would probably be more appropriate if Herbert (as maintainer) does so and b) we should decide first whether or not dash's behaviour can/should be adapted. Cheers, Chris.