Hello The comment above xexec() states that it won't try to run the command as a builtin if it has a path, but it never checks before it calls toy_exec() which then calls basename on the command, stripping the path.