diff --git a/Lib/test/test_pep277.py b/Lib/test/test_pep277.py
index fae2c6f..7b527de 100644
--- a/Lib/test/test_pep277.py
+++ b/Lib/test/test_pep277.py
@@ -15,11 +15,6 @@
     u'\u66e8\u66e9\u66eb',
     u'\u66e8\u05e9\u3093\u0434\u0393\xdf',
     # Specific code points: fn, NFC(fn) and NFKC(fn) all differents
-    u'\u2000\u2000\u2000A',
-    u'\u2001\u2001\u2001A',
-    u'\u2003\u2003\u2003A', # == NFC(u'\u2001\u2001\u2001A')
-    u'\u0020\u0020\u0020A', # u'\u0020' == u' ' == NFKC(u'\u2000')
-                            # u'\u0020' == NFKC(u'\u2001') == NFKC(u'\u2003')
     u'\u1fee\u1ffd',
     # Specific code points: NFC(fn), NFD(fn), NFKC(fn) and NFKD(fn) all differents
     u'\u0385\u03d3\u03d4',
@@ -28,6 +23,22 @@
     u'\u1e9b\u1fc1\u1fcd\u1fce\u1fcf\u1fdd\u1fde\u1fdf\u1fed',
     ]
 
+# Mac OS X decomposes Unicode names, using Normal Form D.
+# http://developer.apple.com/mac/library/qa/qa2001/qa1173.html
+# "However, most volume formats do not follow the exact specification for
+# these normal forms.  For example, HFS Plus uses a variant of Normal Form D
+# in which U+2000 through U+2FFF, U+F900 through U+FAFF, and U+2F800 through
+# U+2FAFF are not decomposed."
+if sys.platform != 'darwin':
+    filenames.extend([
+        # Specific code points: fn, NFC(fn) and NFKC(fn) all differents
+        u'\u1fee\u1ffd\ufad1',
+        u'\u2000\u2000\u2000A',
+        u'\u2001\u2001\u2001A',
+        u'\u2003\u2003\u2003A', # == NFC(u'\u2001\u2001\u2001A')
+        u'\u0020\u0020\u0020A', # u'\u0020' == u' ' == NFKC(u'\u2000') ==
+                                #   NFKC(u'\u2001') == NFKC(u'\u2003')
+])
 
 # Destroy directory dirname and all files under it, to one level.
 def deltree(dirname):
@@ -114,8 +125,7 @@
             files = set(normalize('NFD', file) for file in files)
         for name in others:
             if sys.platform == 'darwin' and normalize('NFD', name) in files:
-                # Mac OS X decomposes Unicode names, using Normal Form D.
-                # http://developer.apple.com/mac/library/qa/qa2001/qa1173.html
+                # Mac OS X decomposes Unicode names.  See comment above.
                 os.stat(name)
                 continue
             self._apply_failure(open, name, IOError)
@@ -132,8 +142,7 @@
         f2 = os.listdir(unicode(test_support.TESTFN,
                                 sys.getfilesystemencoding()))
         if sys.platform == 'darwin':
-            # Mac OS X returns canonically decomposed Unicode (Normal Form D)
-            # http://developer.apple.com/mac/library/qa/qa2001/qa1173.html
+            # Mac OS X decomposes Unicode names.  See comment above.
             sf0 = set(normalize('NFD', unicode(f)) for f in self.files)
             f2 = [normalize('NFD', unicode(f)) for f in f2]
         sf2 = set(os.path.join(unicode(test_support.TESTFN), f) for f in f2)
diff --git a/Misc/NEWS b/Misc/NEWS
index d834e10..1580768 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -147,8 +147,8 @@
 Tests
 -----
 
-- Issue #8180: Fix test_pep277 on OS X and add more tests for special Unicode
-  normalization cases.
+- Issue #8180 and #8207: Fix test_pep277 on OS X and add more tests for special
+  Unicode normalization cases.
 
 - Issue #7783: test.test_support.open_urlresource invalidates the outdated
   files from the local cache.
