See SF #848614: distutils' msvccompiler now tries to detect that MSVC6
is installed but the registry settings are incomplete because the gui
has never been run.

Already backported to release23-maint.
diff --git a/Lib/distutils/msvccompiler.py b/Lib/distutils/msvccompiler.py
index 5f3d8de..27fb658 100644
--- a/Lib/distutils/msvccompiler.py
+++ b/Lib/distutils/msvccompiler.py
@@ -547,6 +547,16 @@
                     return string.split(self.__macros.sub(d[path]), ";")
                 else:
                     return string.split(d[path], ";")
+        # MSVC 6 seems to create the registry entries we need only when
+        # the GUI is run.
+        if self.__version == 6:
+            for base in HKEYS:
+                if read_values(base, r"%s\6.0" % self.__root) is not None:
+                    self.warn("It seems you have Visual Studio 6 installed, "
+                        "but the expected registry settings are not present.\n"
+                        "You must at least run the Visual Studio GUI once "
+                        "so that these entries are created.")
+                break
         return []
 
     def set_path_env_var(self, name):
diff --git a/Misc/NEWS b/Misc/NEWS
index c523e65..8097a03 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -146,6 +146,9 @@
 Library
 -------
 
+- Bug #848614: distutils' msvccompiler fails to find the MSVC6
+  compiler because of incomplete registry entries.
+
 - httplib.HTTP.putrequest now offers to omit the implicit Accept-Encoding.
 
 - Patch #841977: modulefinder didn't find extension modules in packages