 -      # vcvars32, which it can only find if VS??COMNTOOLS is set, which it
 -      # isn't always.
 -      if target_arch == 'x86':
--        if self.short_name == '2013' and (
+-        if self.short_name >= '2013' and self.short_name[-1] != 'e' and (
 -            os.environ.get('PROCESSOR_ARCHITECTURE') == 'AMD64' or
 -            os.environ.get('PROCESSOR_ARCHITEW6432') == 'AMD64'):
--          # VS2013 non-Express has a x64-x86 cross that we want to prefer.
+-          # VS2013 and later, non-Express have a x64-x86 cross that we want
+-          # to prefer.
 -          return [os.path.normpath(
 -             os.path.join(self.path, 'VC/vcvarsall.bat')), 'amd64_x86']
 -        # Otherwise, the standard x86 compiler.

+        # VS2013 non-Express has a x64-x86 cross that we want to prefer.
         return [os.path.normpath(
-            os.path.join(self.path, 'VC/vcvarsall.bat')), arg]
+           os.path.join(self.path, 'VC/vcvarsall.bat')), 'amd64_x86']
+      # Otherwise, the standard x86 compiler.
+      return [os.path.normpath(
+        os.path.join(self.path, 'Common7/Tools/vsvars32.bat'))]

+      return [os.path.normpath(
+          os.path.join(self.path, 'VC/vcvarsall.bat')), arg]
 
 def _RegistryQueryBase(sysdir, key, value):
   """Use reg.exe to read a particular key.
