diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py
index d4eb368..aae0f27 100644
--- a/Lib/distutils/sysconfig.py
+++ b/Lib/distutils/sysconfig.py
@@ -34,7 +34,7 @@
 del argv0_path, landmark
 
 
-def get_python_version ():
+def get_python_version():
     """Return a string containing the major and minor Python version,
     leaving off the patchlevel.  Sample return values could be '1.5'
     or '2.2'.
@@ -65,7 +65,7 @@
                 if not os.path.exists(inc_dir):
                     inc_dir = os.path.join(os.path.dirname(base), "Include")
             return inc_dir
-        return os.path.join(prefix, "include", "python" + sys.version[:3])
+        return os.path.join(prefix, "include", "python" + get_python_version())
     elif os.name == "nt":
         return os.path.join(prefix, "include")
     elif os.name == "mac":
@@ -110,7 +110,7 @@
         if standard_lib:
             return os.path.join(prefix, "Lib")
         else:
-            if sys.version < "2.2":
+            if get_python_version() < "2.2":
                 return prefix
             else:
                 return os.path.join(PREFIX, "Lib", "site-packages")
@@ -189,7 +189,7 @@
         inc_dir = os.curdir
     else:
         inc_dir = get_python_inc(plat_specific=1)
-    if sys.version < '2.2':
+    if get_python_version() < '2.2':
         config_h = 'config.h'
     else:
         # The name of the config.h file changed in 2.2
@@ -378,7 +378,7 @@
     if python_build:
         g['LDSHARED'] = g['BLDSHARED']
 
-    elif sys.version < '2.1':
+    elif get_python_version() < '2.1':
         # The following two branches are for 1.5.2 compatibility.
         if sys.platform == 'aix4':          # what about AIX 3.x ?
             # Linker script is in the config directory, not in Modules as the
@@ -405,7 +405,7 @@
             # it's taken care of for them by the 'build_ext.get_libraries()'
             # method.)
             g['LDSHARED'] = ("%s -L%s/lib -lpython%s" %
-                             (linkerscript, PREFIX, sys.version[0:3]))
+                             (linkerscript, PREFIX, get_python_version()))
 
     global _config_vars
     _config_vars = g
diff --git a/Misc/NEWS b/Misc/NEWS
index cdb9f80..ea463f9 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -61,6 +61,8 @@
 Library
 -------
 
+- Patch #1046831: Use get_python_version where appropriate in sysconfig.py.
+
 - Patch #1117454: Remove code to special-case cookies without values
   in LWPCookieJar.
 
