Ihor, Thank you for investigating, explaining, and also fixing the problem! I pulled the latest 'main' and everything works a bit, it seems. Then, to avoid walking in circles, I decided to write some tests, for I think shell blocks should never, never, never break in such basic ways, let alone in production Emacs. Please, see the WIP patch attached to this message. I noticed that the following tests do not pass: 1. ob-shell/error-output-after-success We seem to trash error output, such as warnings, on success. I think we should not do this. Now, on the execution of "echo X &>2", Org says "Code block produced no output." But that does hold true. The block did produce output, just on the other output stream, namely error output. 2. ob-shell/error-output-after-failure We seem not to show the exit code in this case. Why? 3. ob-shell/exit-codes Should we add a newline after the exit code message? Rudy