diff --git a/Doc/lib/libposixpath.tex b/Doc/lib/libposixpath.tex
index 7ad19e3..c5f992b 100644
--- a/Doc/lib/libposixpath.tex
+++ b/Doc/lib/libposixpath.tex
@@ -219,6 +219,13 @@
 \var{names} must be modified in place, using \keyword{del} or slice
 assignment.)
 
+\begin{datadesc}{supports_unicode_filenames}
+True if arbitrary Unicode strings can be used as file names (within
+limitations imposed by the file system), and if os.listdir returns
+Unicode strings for a Unicode argument.
+\versionadded{2.3}
+\end{datadesc}
+
 \begin{notice}
 Symbolic links to directories are not treated as subdirectories, and
 that \function{walk()} therefore will not visit them. To visit linked
diff --git a/Doc/lib/libsys.tex b/Doc/lib/libsys.tex
index eec02e0..3f8f7b6 100644
--- a/Doc/lib/libsys.tex
+++ b/Doc/lib/libsys.tex
@@ -216,6 +216,32 @@
   only.
 \end{funcdesc}
 
+\begin{funcdesc}{getwindowsversion}{}
+  Return a tuple containing five components, describing the Windows 
+  version currently running.  The elements are \var{major}, \var{minor}, 
+  \var{build}, \var{platform}, and \var{text}.  \var{text} contains
+  a string while all other values are integers.
+
+  \var{platform} may be one of the following values:
+  \begin{list}{}{\leftmargin 0.7in \labelwidth 0.65in}
+    \item[0 (\constant{VER_PLATFORM_WIN32s})]
+      Win32s on Windows 3.1.
+    \item[1 (\constant{VER_PLATFORM_WIN32_WINDOWS})] 
+      Windows 95/98/ME
+    \item[2 (\constant{VER_PLATFORM_WIN32_NT})] 
+      Windows NT/2000/XP
+    \item[3 (\constant{VER_PLATFORM_WIN32_CE})] 
+      Windows CE.
+  \end{list}
+  
+  This function wraps the Win32 \function{GetVersionEx()} function;
+  see the Microsoft Documentation for more information about these
+  fields.
+
+  Availability: Windows.
+  \versionadded{2.3}
+\end{funcdesc}
+
 \begin{datadesc}{hexversion}
   The version number encoded as a single integer.  This is guaranteed
   to increase with each version, including proper support for
diff --git a/Lib/dospath.py b/Lib/dospath.py
index f613a63..345b940 100644
--- a/Lib/dospath.py
+++ b/Lib/dospath.py
@@ -6,7 +6,8 @@
 __all__ = ["normcase","isabs","join","splitdrive","split","splitext",
            "basename","dirname","commonprefix","getsize","getmtime",
            "getatime","islink","exists","isdir","isfile","ismount",
-           "walk","expanduser","expandvars","normpath","abspath"]
+           "walk","expanduser","expandvars","normpath","abspath",
+           "supports_unicode_filenames"]
 
 def normcase(s):
     """Normalize the case of a pathname.
@@ -336,3 +337,4 @@
 
 # realpath is a no-op on systems without islink support
 realpath = abspath
+supports_unicode_filenames = False
diff --git a/Lib/macpath.py b/Lib/macpath.py
index 8546892..f19b4f7 100644
--- a/Lib/macpath.py
+++ b/Lib/macpath.py
@@ -6,7 +6,8 @@
 __all__ = ["normcase","isabs","join","splitdrive","split","splitext",
            "basename","dirname","commonprefix","getsize","getmtime",
            "getatime","islink","exists","isdir","isfile",
-           "walk","expanduser","expandvars","normpath","abspath"]
+           "walk","expanduser","expandvars","normpath","abspath",
+           "supports_unicode_filenames"]
 
 # Normalize the case of a pathname.  Dummy in Posix, but <s>.lower() here.
 
@@ -248,3 +249,5 @@
         path = join(path, c)
         path = macfs.ResolveAliasFile(path)[0].as_pathname()
     return path
+
+supports_unicode_filenames = False
diff --git a/Lib/ntpath.py b/Lib/ntpath.py
index d376065..73b7a2f 100644
--- a/Lib/ntpath.py
+++ b/Lib/ntpath.py
@@ -7,11 +7,13 @@
 
 import os
 import stat
+import sys
 
 __all__ = ["normcase","isabs","join","splitdrive","split","splitext",
            "basename","dirname","commonprefix","getsize","getmtime",
            "getatime","islink","exists","isdir","isfile","ismount",
-           "walk","expanduser","expandvars","normpath","abspath","splitunc"]
+           "walk","expanduser","expandvars","normpath","abspath","splitunc",
+           "supports_unicode_filenames"]
 
 # Normalize the case of a pathname and map slashes to backslashes.
 # Other normalizations (such as optimizing '../' away) are not done
@@ -476,3 +478,5 @@
 
 # realpath is a no-op on systems without islink support
 realpath = abspath
+# Win9x family and earlier have no Unicode filename support.
+supports_unicode_filenames = sys.getwindowsversion()[3] >= 2
diff --git a/Lib/os2emxpath.py b/Lib/os2emxpath.py
index a539a82..616d474 100644
--- a/Lib/os2emxpath.py
+++ b/Lib/os2emxpath.py
@@ -11,7 +11,8 @@
 __all__ = ["normcase","isabs","join","splitdrive","split","splitext",
            "basename","dirname","commonprefix","getsize","getmtime",
            "getatime","islink","exists","isdir","isfile","ismount",
-           "walk","expanduser","expandvars","normpath","abspath","splitunc"]
+           "walk","expanduser","expandvars","normpath","abspath","splitunc",
+           "supports_unicode_filenames"]
 
 # Normalize the case of a pathname and map slashes to backslashes.
 # Other normalizations (such as optimizing '../' away) are not done
@@ -400,3 +401,5 @@
     if not isabs(path):
         path = join(os.getcwd(), path)
     return normpath(path)
+
+supports_unicode_filenames = False
diff --git a/Lib/posixpath.py b/Lib/posixpath.py
index d5d2621..bf15390 100644
--- a/Lib/posixpath.py
+++ b/Lib/posixpath.py
@@ -17,7 +17,7 @@
            "basename","dirname","commonprefix","getsize","getmtime",
            "getatime","islink","exists","isdir","isfile","ismount",
            "walk","expanduser","expandvars","normpath","abspath",
-           "samefile","sameopenfile","samestat"]
+           "samefile","sameopenfile","samestat","supports_unicode_filenames"]
 
 # Normalize the case of a pathname.  Trivial in Posix, string.lower on Mac.
 # On MS-DOS this may also turn slashes into backslashes; however, other
@@ -409,3 +409,6 @@
             return realpath(newpath)
 
     return filename
+
+supports_unicode_filenames = False
+
diff --git a/Lib/test/output/test_pep277 b/Lib/test/output/test_pep277
index 717b707..43bd9e1 100644
--- a/Lib/test/output/test_pep277
+++ b/Lib/test/output/test_pep277
@@ -1,4 +1,4 @@
 test_pep277
-u'F:\\src\\python-cvs\\Lib\\test\\@test\\Gr\xfc\xdf-\u66e8\u66e9\u66eb\\\xdf-\u66e8\u66e9\u66eb'
+u'\xdf-\u66e8\u66e9\u66eb'
 ['???', '???', '??????', '????????????', '????G\xdf', 'Ge??-sa?', 'Gr\xfc\xdf-Gott', 'abc', 'ascii']
 [u'Gr\xfc\xdf-Gott', u'abc', u'ascii', u'\u0393\u03b5\u03b9\u03ac-\u03c3\u03b1\u03c2', u'\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435', u'\u05d4\u05e9\u05e7\u05e6\u05e5\u05e1', u'\u306b\u307d\u3093', u'\u66e8\u05e9\u3093\u0434\u0393\xdf', u'\u66e8\u66e9\u66eb']
diff --git a/Lib/test/test_pep277.py b/Lib/test/test_pep277.py
index 480fe00..9c4aa05 100644
--- a/Lib/test/test_pep277.py
+++ b/Lib/test/test_pep277.py
@@ -2,9 +2,7 @@
 # open, os.open, os.stat. os.listdir, os.rename, os.remove, os.mkdir, os.chdir, os.rmdir
 import os, unittest
 from test.test_support import TESTFN, TestSkipped, TestFailed, run_suite
-try:
-    from nt import _getfullpathname
-except ImportError:
+if not os.path.supports_unicode_filenames:
     raise TestSkipped, "test works only on NT+"
 
 filenames = [
@@ -24,7 +22,8 @@
     # Don't hide legitimate errors:  if one of these suckers exists, it's
     # an error if we can't remove it.
     if os.path.exists(dirname):
-        for fname in os.listdir(dirname):
+        # must pass unicode to os.listdir() so we get back unicode results.
+        for fname in os.listdir(unicode(dirname)):
             os.unlink(os.path.join(dirname, fname))
         os.rmdir(dirname)
 
@@ -99,7 +98,7 @@
         f = open(filename, 'w')
         f.write((filename + '\n').encode("utf-8"))
         f.close()
-        print repr(_getfullpathname(filename))
+        print repr(filename)
         os.remove(filename)
         os.chdir(oldwd)
         os.rmdir(dirname)
diff --git a/Misc/NEWS b/Misc/NEWS
index bc990e3..7ee918b 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -67,6 +67,8 @@
 -----------------
 
 - Unicode file name processing for Windows (PEP 277) is implemented.
+  All platforms now have an os.path.supports_unicode_filenames attribute,
+  which is set to True on Windows NT/2000/XP, and False elsewhere.
 
 - Codec error handling callbacks (PEP 293) are implemented.
   Error handling in unicode.encode or str.decode can now be customized.
@@ -193,6 +195,10 @@
   reliably) are also interrupted (as generally happens on for Linux/Unix.)
   [SF bugs 231273, 439992 and 581232]
 
+- sys.getwindowsversion() has been added on Windows.  This
+  returns a tuple with information about the version of Windows
+  currently running.
+
 - Slices and repetitions of buffer objects now consistently return
   a string.  Formerly, strings would be returned most of the time,
   but a buffer object would be returned when the repetition count
diff --git a/Python/sysmodule.c b/Python/sysmodule.c
index 9057938..751d147 100644
--- a/Python/sysmodule.c
+++ b/Python/sysmodule.c
@@ -20,6 +20,11 @@
 
 #include "osdefs.h"
 
+#ifdef MS_WINDOWS
+#define WIN32_LEAN_AND_MEAN
+#include "windows.h"
+#endif /* MS_WINDOWS */
+
 #ifdef MS_COREDLL
 extern void *PyWin_DLLhModule;
 /* A string loaded from the DLL at startup: */
@@ -404,6 +409,34 @@
 recursion from causing an overflow of the C stack and crashing Python."
 );
 
+#ifdef MS_WINDOWS
+PyDoc_STRVAR(getwindowsversion_doc,
+"getwindowsversion()\n\
+\n\
+Return information about the running version of Windows.\n\
+The result is a tuple of (major, minor, build, platform, text)\n\
+All elements are numbers, except text which is a string.\n\
+Platform may be 0 for win32s, 1 for Windows 9x/ME, 2 for Windows NT/2000/XP\n\
+"
+);
+
+static PyObject *
+sys_getwindowsversion(PyObject *self)
+{
+	OSVERSIONINFO ver;
+	ver.dwOSVersionInfoSize = sizeof(ver);
+	if (!GetVersionEx(&ver))
+		return PyErr_SetFromWindowsErr(0);
+	return Py_BuildValue("HHHHs",
+	                     ver.dwMajorVersion,
+	                     ver.dwMinorVersion,
+	                     ver.dwBuildNumber,
+	                     ver.dwPlatformId,
+	                     ver.szCSDVersion);
+}
+
+#endif /* MS_WINDOWS */
+
 #ifdef HAVE_DLOPEN
 static PyObject *
 sys_setdlopenflags(PyObject *self, PyObject *args)
@@ -570,6 +603,10 @@
 	{"getrecursionlimit", (PyCFunction)sys_getrecursionlimit, METH_NOARGS,
 	 getrecursionlimit_doc},
 	{"_getframe", sys_getframe, METH_VARARGS, getframe_doc},
+#ifdef MS_WINDOWS
+	{"getwindowsversion", (PyCFunction)sys_getwindowsversion, METH_NOARGS,
+	 getwindowsversion_doc},
+#endif /* MS_WINDOWS */
 #ifdef USE_MALLOPT
 	{"mdebug",	sys_mdebug, METH_VARARGS},
 #endif
