Hello, Create an application that does the following: void setFdBlocking(int fd, bool block) { // Set an fd's blocking flag on or off. int flags; if (0 > (flags = fcntl(fd, F_GETFL, 0))) { throw; } if (block) { flags &= ~O_NONBLOCK; } else { flags |= O_NONBLOCK; } if (0 > fcntl(fd, F_SETFL, flags)) { throw; } } // Make Stdout and Stderr be non-blocking. setFdBlocking(1, false); setFdBlocking(2, false); If you execute the application from a shell inside emacs, the shell will exit when the command returns. This does not happen for a shell outside of emacs. Thanks. -William