diff --git a/Modules/_posixsubprocess.c b/Modules/_posixsubprocess.c --- a/Modules/_posixsubprocess.c +++ b/Modules/_posixsubprocess.c @@ -79,6 +79,11 @@ } else if (p2cread != -1) { POSIX_CALL(dup2(p2cread, 0)); /* stdin */ } + if (errwrite == 1) { + int olderrwrite = errwrite; + POSIX_CALL(errwrite = dup(errwrite)); + close(olderrwrite); + } if (c2pwrite == 1) { int old = fcntl(c2pwrite, F_GETFD); if (old != -1)