Index: Lib/test/regrtest.py =================================================================== --- Lib/test/regrtest.py (revision 84663) +++ Lib/test/regrtest.py (working copy) @@ -736,13 +736,12 @@ def replace_stdout(): """Set stdout encoder error handler to backslashreplace (as stderr error handler) to avoid UnicodeEncodeError when printing a traceback""" - if os.name == "nt": - # Replace sys.stdout breaks the stdout newlines on Windows: issue #8533 - return stdout = sys.stdout - sys.stdout = open(stdout.fileno(), 'w', - encoding=stdout.encoding, - errors="backslashreplace") + buf = io.open(stdout.fileno(), "wb") + buf.raw.name = "" + line_buffering = buf.raw.isatty() + sys.stdout = io.TextIOWrapper(buf, + stdout.encoding, "backslashreplace", "\n", line_buffering) def runtest(test, verbose, quiet, testdir=None, huntrleaks=False, debug=False, use_resources=None):