diff -aur 1040/Lib/distutils/cygwinccompiler.py 2000/Lib/distutils/cygwinccompiler.py
--- 1040/Lib/distutils/cygwinccompiler.py	2015-03-31 19:50:52.675374300 -0300
+++ 2000/Lib/distutils/cygwinccompiler.py	2015-03-31 19:57:35.460903800 -0300
@@ -159,6 +159,28 @@
                 self.spawn(["windres", "-i", src, "-o", obj])
             except DistutilsExecError, msg:
                 raise CompileError, msg
+        elif ext == '.mc':
+            # Adapted from msvc9compiler:
+            #
+            # Compile .MC to .RC file to .RES file.
+            #   * '-h dir' specifies the directory for the generated include file
+            #   * '-r dir' specifies the target directory of the generated RC file and the binary message resource it includes
+            #
+            # For now (since there are no options to change this),
+            # we use the source-directory for the include file and
+            # the build directory for the RC file and message
+            # resources. This works at least for win32all.
+            h_dir = os.path.dirname(src)
+            rc_dir = os.path.dirname(obj)
+            try:
+                # first compile .MC to .RC and .H file
+                self.spawn(['windmc'] + ['-h', h_dir, '-r', rc_dir] + [src])
+                base, _ = os.path.splitext (os.path.basename (src))
+                rc_file = os.path.join (rc_dir, base + '.rc')
+                # then compile .RC to .RES file
+                self.spawn(['windres', '-i', rc_file, '-o', obj])
+            except DistutilsExecError, msg:
+                raise CompileError(msg)
         else: # for other files use the C-compiler
             try:
                 self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
@@ -277,7 +299,7 @@
             ext_normcase = os.path.normcase(ext)
             if ext_normcase in ['.rc','.res']:
                 ext = ext_normcase
-            if ext not in (self.src_extensions + ['.rc','.res']):
+            if ext not in (self.src_extensions + ['.rc', '.res', '.mc']):
                 raise UnknownFileError, \
                       "unknown file type '%s' (from '%s')" % \
                       (ext, src_name)
