diff --git a/Lib/test/test_pep277.py b/Lib/test/test_pep277.py
index 4695e0a..e5f538e 100644
--- a/Lib/test/test_pep277.py
+++ b/Lib/test/test_pep277.py
@@ -2,8 +2,9 @@
 # open, os.open, os.stat. os.listdir, os.rename, os.remove, os.mkdir, os.chdir, os.rmdir
 import sys, os, unittest
 from test import test_support
-if not os.path.supports_unicode_filenames:
-    raise unittest.SkipTest, "test works only on NT+"
+## There's no obvious reason to skip these tests on POSIX systems
+# if not os.path.supports_unicode_filenames:
+#     raise unittest.SkipTest, "test works only on NT+"
 
 filenames = [
     'abc',
@@ -51,6 +52,9 @@
             raise test_support.TestFailed("Expected to fail calling '%s(%r)'"
                              % (fn.__name__, filename))
         except expected_exception, details:
+            # the "filename" exception attribute may be encoded
+            if isinstance(details.filename, str):
+                filename = filename.encode(sys.getfilesystemencoding())
             if check_fn_in_exception and details.filename != filename:
                 raise test_support.TestFailed("Function '%s(%r) failed with "
                                  "bad filename in the exception: %r"
@@ -80,7 +84,7 @@
         f1 = os.listdir(test_support.TESTFN)
         f2 = os.listdir(unicode(test_support.TESTFN,
                                 sys.getfilesystemencoding()))
-        sf2 = set(u"\\".join((unicode(test_support.TESTFN), f))
+        sf2 = set(os.path.join(unicode(test_support.TESTFN), f)
                   for f in f2)
         self.assertEqual(len(f1), len(self.files))
         self.assertEqual(sf2, set(self.files))
