I've been able to bypass the error by adding the following to my .emacs (require 'ob-shell)
(defun org-babel-sh-strip-weird-long-prompt (string) "Remove prompt cruft from a string of shell output." (while (string-match shell-prompt-pattern string) (setq string (substring string (match-end 0)))) string) (setq shell-prompt-pattern "^sh-[[:digit:]].[[:digit:]]\$ ") Of course, this is is just a dirty hack not suitable for a release. It seems logical that `org-babel-sh-strip-weird-long-prompt` on `ob-shell.el` respects `shell-prompt-pattern` from `shell.el`. It's not like this on the released source code. But to be honest still the idea ripping a dynamic string from the shell output seems pretty hackish to me. I'm not really aware of the internals of `comint.el`, but I think that instead it should set the shell $PS1 to an empty value and read the thing afterwards, or - if this changes things too much - at least set $PS1 to a very unique and distinctive value in order to avoid these kind of bugs. Felix Freeman