diff --git a/numpy/distutils/fcompiler/gnu.py b/numpy/distutils/fcompiler/gnu.py
index 68d1501..2ffbfa7 100644
--- a/numpy/distutils/fcompiler/gnu.py
+++ b/numpy/distutils/fcompiler/gnu.py
@@ -98,7 +98,7 @@ class GnuFCompiler(FCompiler):
         pic_flags = ['-fPIC']
 
     # use -mno-cygwin for g77 when Python is not Cygwin-Python
-    if sys.platform == 'win32':
+    if sys.platform == 'win32' and not 'GCC' in sys.version:
         for key in ['version_cmd', 'compiler_f77', 'linker_so', 'linker_exe']:
             executables[key].append('-mno-cygwin')
 
diff --git a/numpy/distutils/mingw32ccompiler.py b/numpy/distutils/mingw32ccompiler.py
index 3358695..bbcaf48 100644
--- a/numpy/distutils/mingw32ccompiler.py
+++ b/numpy/distutils/mingw32ccompiler.py
@@ -91,22 +91,24 @@ class Mingw32CCompiler(distutils.cygwinccompiler.CygwinCCompiler):
         elif self.linker_dll == 'gcc':
             self.linker = 'g++'
 
-        # **changes: eric jones 4/11/01
-        # 1. Check for import library on Windows.  Build if it doesn't exist.
-
-        build_import_library()
-
-        # Check for custom msvc runtime library on Windows. Build if it doesn't exist.
-        msvcr_success = build_msvcr_library()
-        msvcr_dbg_success = build_msvcr_library(debug=True)
-        if msvcr_success or msvcr_dbg_success:
-            # add preprocessor statement for using customized msvcr lib
-            self.define_macro('NPY_MINGW_USE_CUSTOM_MSVCR')
-
-        # Define the MSVC version as hint for MinGW
-        msvcr_version = msvc_runtime_version()
-        if msvcr_version:
-            self.define_macro('__MSVCRT_VERSION__', '0x%04i' % msvcr_version)
+        if not 'GCC' in sys.version:
+
+            # **changes: eric jones 4/11/01
+            # 1. Check for import library on Windows.  Build if it doesn't exist.
+
+            build_import_library()
+
+            # Check for custom msvc runtime library on Windows. Build if it doesn't exist.
+            msvcr_success = build_msvcr_library()
+            msvcr_dbg_success = build_msvcr_library(debug=True)
+            if msvcr_success or msvcr_dbg_success:
+                # add preprocessor statement for using customized msvcr lib
+                self.define_macro('NPY_MINGW_USE_CUSTOM_MSVCR')
+
+            # Define the MSVC version as hint for MinGW
+            msvcr_version = msvc_runtime_version()
+            if msvcr_version:
+                self.define_macro('__MSVCRT_VERSION__', '0x%04i' % msvcr_version)
 
         # MS_WIN64 should be defined when building for amd64 on windows,
         # but python headers define it only for MS compilers, which has all
