Convert file names of posix.access according to the file system encoding.
diff --git a/Lib/test/test_unicode_file.py b/Lib/test/test_unicode_file.py
index 87f73ac..6443efd 100644
--- a/Lib/test/test_unicode_file.py
+++ b/Lib/test/test_unicode_file.py
@@ -44,8 +44,10 @@
     def _do_single(self, filename):
         self.failUnless(os.path.exists(filename))
         self.failUnless(os.path.isfile(filename))
+        self.failUnless(os.access(filename, os.R_OK))
         self.failUnless(os.path.exists(os.path.abspath(filename)))
         self.failUnless(os.path.isfile(os.path.abspath(filename)))
+        self.failUnless(os.access(os.path.abspath(filename), os.R_OK))
         os.chmod(filename, 0777)
         os.utime(filename, None)
         os.utime(filename, (time.time(), time.time()))
diff --git a/Misc/NEWS b/Misc/NEWS
index 3db47a3..e387e63 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -47,6 +47,8 @@
 Extension Modules
 -----------------
 
+- os.access now supports Unicode path names on non-Win32 systems.
+
 - Patches #925152, #1118602: Avoid reading after the end of the buffer
   in pyexpat.GetInputContext.
 
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index 2d3eaa3..1ca131e 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -1113,7 +1113,8 @@
 		PyErr_Clear();
 	}
 #endif
-	if (!PyArg_ParseTuple(args, "si:access", &path, &mode))
+	if (!PyArg_ParseTuple(args, "eti:access", 
+			      Py_FileSystemDefaultEncoding, &path, &mode))
 		return NULL;
 	Py_BEGIN_ALLOW_THREADS
 	res = access(path, mode);