diff --git a/Lib/test/script_helper.py b/Lib/test/script_helper.py
index f291430..efb0523 100644
--- a/Lib/test/script_helper.py
+++ b/Lib/test/script_helper.py
@@ -19,11 +19,12 @@
         return subprocess.call(cmd_line, stdout=devnull,
                                 stderr=subprocess.STDOUT)
 
-def spawn_python(*args):
+def spawn_python(*args, **kwargs):
     cmd_line = [sys.executable, '-E']
     cmd_line.extend(args)
     return subprocess.Popen(cmd_line, stdin=subprocess.PIPE,
-                            stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
+                            stdout=subprocess.PIPE, stderr=subprocess.STDOUT,
+                            **kwargs)
 
 def kill_python(p):
     p.stdin.close()
@@ -35,11 +36,11 @@
     subprocess._cleanup()
     return data
 
-def run_python(*args):
+def run_python(*args, **kwargs):
     if __debug__:
-        p = spawn_python(*args)
+        p = spawn_python(*args, **kwargs)
     else:
-        p = spawn_python('-O', *args)
+        p = spawn_python('-O', *args, **kwargs)
     stdout_data = kill_python(p)
     return p.wait(), stdout_data
 
diff --git a/Lib/test/test_fileio.py b/Lib/test/test_fileio.py
index 21d231f..930b654 100644
--- a/Lib/test/test_fileio.py
+++ b/Lib/test/test_fileio.py
@@ -12,6 +12,7 @@
 
 from test.test_support import TESTFN, check_warnings, run_unittest, make_bad_fd
 from test.test_support import py3k_bytes as bytes
+from test.script_helper import run_python
 
 from _io import FileIO as _FileIO
 
@@ -397,6 +398,25 @@
             self.assertRaises(ValueError, _FileIO, "/some/invalid/name", "rt")
             self.assertEqual(w.warnings, [])
 
+    def test_surrogates(self):
+        # Issue #8438: try to open a filename containing surrogates.
+        # It should either fail because the file doesn't exist or the filename
+        # can't be represented using the filesystem encoding, but not because
+        # of a LookupError for the error handler "surrogateescape".
+        filename = u'\udc80.txt'
+        try:
+            with _FileIO(filename):
+                pass
+        except (UnicodeEncodeError, IOError):
+            pass
+        # Spawn a separate Python process with a different "file system
+        # default encoding", to exercise this further.
+        env = dict(os.environ)
+        env[b'LC_CTYPE'] = b'C'
+        _, out = run_python('-c', 'import _io; _io.FileIO(%r)' % filename, env=env)
+        if ('UnicodeEncodeError' not in out and
+            'IOError: [Errno 2] No such file or directory' not in out):
+            self.fail('Bad output: %r' % out)
 
 def test_main():
     # Historically, these tests have been sloppy about removing TESTFN.
