*** subprocess.py.ORIG 2010-09-07 06:27:20.000000000 -0700 --- subprocess.py 2011-10-28 16:54:17.328881200 -0700 *************** *** 608,613 **** --- 608,617 ---- return ''.join(result) + if mswindows: + import socket + + class Popen(object): def __init__(self, args, bufsize=0, executable=None, stdin=None, stdout=None, stderr=None, *************** *** 767,772 **** --- 771,778 ---- p2cread, p2cwrite = _subprocess.CreatePipe(None, 0) elif isinstance(stdin, int): p2cread = msvcrt.get_osfhandle(stdin) + elif isinstance(stdin, socket._socketobject): + p2cread = stdin.fileno() else: # Assuming file-like object p2cread = msvcrt.get_osfhandle(stdin.fileno()) *************** *** 780,785 **** --- 786,793 ---- c2pread, c2pwrite = _subprocess.CreatePipe(None, 0) elif isinstance(stdout, int): c2pwrite = msvcrt.get_osfhandle(stdout) + elif isinstance(stdout, socket._socketobject): + c2pwrite = stdout.fileno() else: # Assuming file-like object c2pwrite = msvcrt.get_osfhandle(stdout.fileno()) *************** *** 795,800 **** --- 803,810 ---- errwrite = c2pwrite elif isinstance(stderr, int): errwrite = msvcrt.get_osfhandle(stderr) + elif isinstance(stderr, socket._socketobject): + c2pwrite = stderr.fileno() else: # Assuming file-like object errwrite = msvcrt.get_osfhandle(stderr.fileno())