--- src/terminal-screen.c.orig 2016-08-09 12:37:41.000000000 -0700 +++ src/terminal-screen.c 2016-08-19 22:31:43.000000000 -0700 @@ -1311,7 +1311,12 @@ for (j = 0; j < n_fds; j++) { if (fds[j] == target_fd) { do { +#ifdef F_DUPFD_CLOEXEC fd = fcntl (fds[j], F_DUPFD_CLOEXEC, 3); +#else + fd = fcntl (fds[j], F_DUPFD, 3); + fcntl(fd, F_SETFD, FD_CLOEXEC); +#endif } while (fd == -1 && errno == EINTR); if (fd == -1) _exit (127);