diff --git a/Lib/test/support.py b/Lib/test/support.py
index 9bb4f36..871154a 100644
--- a/Lib/test/support.py
+++ b/Lib/test/support.py
@@ -383,37 +383,37 @@
 TESTFN_UNICODE = TESTFN + "-\xe0\xf2"
 TESTFN_ENCODING = sys.getfilesystemencoding()
 
-# TESTFN_UNENCODEABLE is a filename (str type) that should *not* be able to be
+# TESTFN_UNENCODABLE is a filename (str type) that should *not* be able to be
 # encoded by the filesystem encoding (in strict mode). It can be None if we
 # cannot generate such filename.
 if os.name in ('nt', 'ce'):
     if sys.getwindowsversion().platform < 2:
         # win32s (0) or Windows 9x/ME (1)
-        TESTFN_UNENCODEABLE = None
+        TESTFN_UNENCODABLE = None
     else:
         # Japanese characters (I think - from bug 846133)
-        TESTFN_UNENCODEABLE = TESTFN + "-\u5171\u6709\u3055\u308c\u308b"
+        TESTFN_UNENCODABLE = TESTFN + "-\u5171\u6709\u3055\u308c\u308b"
         try:
-            TESTFN_UNENCODEABLE.encode(TESTFN_ENCODING)
+            TESTFN_UNENCODABLE.encode(TESTFN_ENCODING)
         except UnicodeEncodeError:
             pass
         else:
             print('WARNING: The filename %r CAN be encoded by the filesystem encoding (%s). '
                   'Unicode filename tests may not be effective'
-                  % (TESTFN_UNENCODEABLE, TESTFN_ENCODING))
-            TESTFN_UNENCODEABLE = None
+                  % (TESTFN_UNENCODABLE, TESTFN_ENCODING))
+            TESTFN_UNENCODABLE = None
 else:
     try:
         # ascii and utf-8 cannot encode the byte 0xff
         b'\xff'.decode(TESTFN_ENCODING)
     except UnicodeDecodeError:
         # 0xff will be encoded using the surrogate character u+DCFF
-        TESTFN_UNENCODEABLE = TESTFN \
+        TESTFN_UNENCODABLE = TESTFN \
             + b'-\xff'.decode(TESTFN_ENCODING, 'surrogateescape')
     else:
         # File system encoding (eg. ISO-8859-* encodings) can encode
         # the byte 0xff. Skip some unicode filename tests.
-        TESTFN_UNENCODEABLE = None
+        TESTFN_UNENCODABLE = None
 
 # Save the initial cwd
 SAVEDCWD = os.getcwd()
diff --git a/Lib/test/test_imp.py b/Lib/test/test_imp.py
index 233d3da..eb9eaef 100644
--- a/Lib/test/test_imp.py
+++ b/Lib/test/test_imp.py
@@ -307,10 +307,10 @@
 
 
 class NullImporterTests(unittest.TestCase):
-    @unittest.skipIf(support.TESTFN_UNENCODEABLE is None,
+    @unittest.skipIf(support.TESTFN_UNENCODABLE is None,
                      "Need an undecodeable filename")
     def test_unencodeable(self):
-        name = support.TESTFN_UNENCODEABLE
+        name = support.TESTFN_UNENCODABLE
         os.mkdir(name)
         try:
             self.assertRaises(ImportError, imp.NullImporter, name)
diff --git a/Lib/test/test_unicode_file.py b/Lib/test/test_unicode_file.py
index 7c2a1b4..f9dd54d 100644
--- a/Lib/test/test_unicode_file.py
+++ b/Lib/test/test_unicode_file.py
@@ -6,7 +6,7 @@
 
 import unittest
 from test.support import (run_unittest, rmtree,
-    TESTFN_ENCODING, TESTFN_UNICODE, TESTFN_UNENCODEABLE)
+    TESTFN_ENCODING, TESTFN_UNICODE, TESTFN_UNENCODABLE)
 
 try:
     TESTFN_UNICODE.encode(TESTFN_ENCODING)
@@ -147,8 +147,8 @@
     # _test functions with each of the filename combinations we wish to test
     def test_single_files(self):
         self._test_single(TESTFN_UNICODE)
-        if TESTFN_UNENCODEABLE is not None:
-            self._test_single(TESTFN_UNENCODEABLE)
+        if TESTFN_UNENCODABLE is not None:
+            self._test_single(TESTFN_UNENCODABLE)
 
     def test_directories(self):
         # For all 'equivalent' combinations:
@@ -157,9 +157,9 @@
         ext = ".dir"
         self._do_directory(TESTFN_UNICODE+ext, TESTFN_UNICODE+ext, False)
         # Our directory name that can't use a non-unicode name.
-        if TESTFN_UNENCODEABLE is not None:
-            self._do_directory(TESTFN_UNENCODEABLE+ext,
-                               TESTFN_UNENCODEABLE+ext,
+        if TESTFN_UNENCODABLE is not None:
+            self._do_directory(TESTFN_UNENCODABLE+ext,
+                               TESTFN_UNENCODABLE+ext,
                                False)
 
 def test_main():
