diff --git a/Lib/test/test_subprocess.py b/Lib/test/test_subprocess.py
index 552b9f2..f2dbdc2 100644
--- a/Lib/test/test_subprocess.py
+++ b/Lib/test/test_subprocess.py
@@ -765,12 +765,16 @@
 
         def test_undecodable_env(self):
             for key, value in (('test', 'abc\uDCFF'), ('test\uDCFF', '42')):
-                value_repr = repr(value).encode("ascii")
+                value_repr = ascii(value).encode("ascii")
 
                 # test str with surrogates
-                script = "import os; print(repr(os.getenv(%s)))" % repr(key)
+                script = "import os; print(ascii(os.getenv(%s)))" % repr(key)
                 env = os.environ.copy()
                 env[key] = value
+                # Force surrogate-escaping of \xFF in the child process;
+                # otherwise it can be decoded as-is if the default locale
+                # is latin-1.
+                env['PYTHONFSENCODING'] = 'ascii'
                 stdout = subprocess.check_output(
                     [sys.executable, "-c", script],
                     env=env)
@@ -780,7 +784,7 @@
                 # test bytes
                 key = key.encode("ascii", "surrogateescape")
                 value = value.encode("ascii", "surrogateescape")
-                script = "import os; print(repr(os.getenv(%s)))" % repr(key)
+                script = "import os; print(ascii(os.getenv(%s)))" % repr(key)
                 env = os.environ.copy()
                 env[key] = value
                 stdout = subprocess.check_output(
diff --git a/Lib/test/test_threading.py b/Lib/test/test_threading.py
index 71135cc..713ea9c 100644
--- a/Lib/test/test_threading.py
+++ b/Lib/test/test_threading.py
@@ -279,7 +279,7 @@
         # Issue1733757
         # Avoid a deadlock when sys.settrace steps into threading._shutdown
         import subprocess
-        rc = subprocess.call([sys.executable, "-c", """if 1:
+        p = subprocess.Popen([sys.executable, "-c", """if 1:
             import sys, threading
 
             # A deadlock-killer, to prevent the
@@ -299,9 +299,14 @@
                 return func
 
             sys.settrace(func)
-            """])
+            """],
+            stdout=subprocess.PIPE,
+            stderr=subprocess.PIPE)
+        stdout, stderr = p.communicate()
+        rc = p.returncode
         self.assertFalse(rc == 2, "interpreted was blocked")
-        self.assertTrue(rc == 0, "Unexpected error")
+        self.assertTrue(rc == 0,
+                        "Unexpected error: " + ascii(stderr))
 
     def test_join_nondaemon_on_shutdown(self):
         # Issue 1722344
