diff --git a/src/MacVim/MMAppController.m b/src/MacVim/MMAppController.m index 17e8a826a3..db7fa10892 100644 --- a/src/MacVim/MMAppController.m +++ b/src/MacVim/MMAppController.m @@ -1954,6 +1954,11 @@ executeInLoginShell(NSString *path, NSArray *args) return -1; } else if (pid == 0) { // Child process + + // We need to undo our zombie avoidance as Vim waits for and needs + // the exit statuses of processes it spawns. + signal(SIGCHLD, SIG_DFL); + if (close(ds[1]) == -1) exit(255); if (dup2(ds[0], 0) == -1) exit(255);