--- /usr/lib/python2.5/subprocess.py 2008-01-09 01:35:37.000000000 +0100 +++ ./subprocess.py 2008-02-14 16:16:04.000000000 +0100 @@ -1134,8 +1134,12 @@ stderr = [] input_offset = 0 + bailout = False while read_set or write_set: - rlist, wlist, xlist = select.select(read_set, write_set, []) + try: + rlist, wlist, xlist = select.select(read_set, write_set, []) + except: + bailout = True if self.stdin in wlist: # When select has indicated that the file is writable, @@ -1161,6 +1165,8 @@ read_set.remove(self.stderr) stderr.append(data) + if bailout: break + # All data exchanged. Translate lists into strings. if stdout is not None: stdout = ''.join(stdout)