Index: pdb.py =================================================================== --- pdb.py (revision 77066) +++ pdb.py (working copy) @@ -61,7 +61,7 @@ def __init__(self, completekey='tab', stdin=None, stdout=None): bdb.Bdb.__init__(self) cmd.Cmd.__init__(self, completekey, stdin, stdout) - if stdout: + if stdout and stdout != sys.stdout: self.use_rawinput = 0 self.prompt = '(Pdb) ' self.aliases = {} Index: doctest.py =================================================================== --- doctest.py (revision 77066) +++ doctest.py (working copy) @@ -1353,7 +1353,6 @@ save_stdout = sys.stdout if out is None: out = save_stdout.write - sys.stdout = self._fakeout # Patch pdb.set_trace to restore sys.stdout during interactive # debugging (so it's not still redirected to self._fakeout). @@ -1365,6 +1364,8 @@ self.debugger.reset() pdb.set_trace = self.debugger.set_trace + sys.stdout = self._fakeout + # Patch linecache.getlines, so we can see the example's source # when we're inside the debugger. self.save_linecache_getlines = linecache.getlines