Hello Lars, As you've mentioned, parsing ( and prompting ) is not done, when command is sent directly to shell. But, i think 'eshell-invoke-directly' should not have returned true for sudo and su. Comment section in 'eshell-find-alias-function' best describes it, (defun eshell-find-alias-function (name) ... ;; If the function exists, but is defined in an eshell module ;; that's not currently enabled, don't report it as found. eshell-tramp is disabled by default. So, eshell-invoke-directly should return nil for su and sudo ( I'm new to eshell as well. So, I might be wrong here ). Replacing fboundp with 'eshell-find-alias-function' should fix this. So far, I've tested locally and it is working fine. Patch attached. Regards Ruthra Kumar