Hi, I believe that it is sub-optimal behavior for `eshell-exit-success-p' to determine that Lisp commands are successful by checking whether or not they return a non-nil value. A demonstration of why this behavior can be considered problematic is found in a command like this: `$ cd .. && pwd' Such a command will not execute its second part (which is `pwd') because `eshell/cd' returns a nil value whether it's successful or not. This behavior is a bit confusing for someone who expects common shell operators such as `&&' to "just work." A better solution would be to check whether the last command threw an actual error. Thanks, - George Plymale II In GNU Emacs 25.1.1 (x86_64-apple-darwin16.1.0, NS appkit-1504.60 Version 10.12.1 (Build 16B2657)) of 2016-11-14 built on [REDACTED] Repository revision: f0eb70d8935be90f7c03e187c12d9b60e7214cc6 Windowing system distributor 'Apple', version 10.3.1504 Configured using: 'configure --with-ns'