diff --git a/MagickCore/annotate.c b/MagickCore/annotate.c
index f50c660..cd5722f 100644
--- a/MagickCore/annotate.c
+++ b/MagickCore/annotate.c
@@ -79,7 +79,7 @@
 #include "MagickCore/xwindow.h"
 #include "MagickCore/xwindow-private.h"
 #if defined(MAGICKCORE_FREETYPE_DELEGATE)
-#if defined(__MINGW32__)
+#if defined(__MINGW32__) || defined(__MINGW64__)
 #  undef interface
 #endif
 #if defined(MAGICKCORE_HAVE_FT2BUILD_H)
diff --git a/MagickCore/magick-type.h b/MagickCore/magick-type.h
index d72c1f4..7af07ae 100644
--- a/MagickCore/magick-type.h
+++ b/MagickCore/magick-type.h
@@ -28,7 +28,7 @@
 #define MAGICKCORE_QUANTUM_DEPTH  16
 #endif
 
-#if defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(__MINGW32__)
+#if defined(MAGICKCORE_WINDOWS_SUPPORT) && \!defined(__MINGW32__) && \!defined(__MINGW64__)
 #  define MagickLLConstant(c)  (MagickOffsetType) (c ## i64)
 #  define MagickULLConstant(c)  (MagickSizeType) (c ## ui64)
 #else
diff --git a/MagickCore/magick.c b/MagickCore/magick.c
index b329806..553ee07 100644
--- a/MagickCore/magick.c
+++ b/MagickCore/magick.c
@@ -1243,7 +1243,7 @@
       events=DestroyString(events);
     }
 #if defined(MAGICKCORE_WINDOWS_SUPPORT)
-#if defined(_DEBUG) && !defined(__BORLANDC__) && !defined(__MINGW32__)
+#if defined(_DEBUG) && !defined(__BORLANDC__) && \!defined(__MINGW32__) && \!defined(__MINGW64__)
   if (IsEventLogging() != MagickFalse)
     {
       int
diff --git a/MagickCore/nt-base-private.h b/MagickCore/nt-base-private.h
index ec3caa9..0d99508 100644
--- a/MagickCore/nt-base-private.h
+++ b/MagickCore/nt-base-private.h
@@ -39,7 +39,7 @@
 #include <io.h>
 #include <process.h>
 #include <errno.h>
-#if defined(_DEBUG) && !defined(__MINGW32__)
+#if defined(_DEBUG) && \!defined(__MINGW32__) && \!defined(__MINGW64__)
 #include <crtdbg.h>
 #endif
 
@@ -97,7 +97,7 @@
 #if !defined(fileno)
 #  define fileno  _fileno
 #endif
-#if !defined(fseek) && !defined(__MINGW32__)
+#if !defined(fseek) && \!defined(__MINGW32__) && \!defined(__MINGW64__)
 #if defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(Windows95) && \
   !(defined(_MSC_VER) && (_MSC_VER < 1400)) && (__MSVCRT_VERSION__ < 0x800)
 #  define fseek  _fseeki64
@@ -114,7 +114,7 @@
 #if !defined(fsync)
 #  define fsync  _commit
 #endif
-#if !defined(ftell) && !defined(__MINGW32__)
+#if !defined(ftell) && \!defined(__MINGW32__) && \!defined(__MINGW64__)
 #if defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(Windows95) && \
   !(defined(_MSC_VER) && (_MSC_VER < 1400)) && (__MSVCRT_VERSION__ < 0x800)
 #  define ftell  _ftelli64
@@ -328,7 +328,7 @@
     ullAvailExtendedVirtual;
 } NTMEMORYSTATUSEX;
 
-#if !defined(__MINGW32__)
+#if \!defined(__MINGW32__) && \!defined(__MINGW64__)
 struct timezone
 {
   int
@@ -372,7 +372,7 @@
 
 extern MagickPrivate int
   Exit(int),
-#if !defined(__MINGW32__)
+#if \!defined(__MINGW32__) && \!defined(__MINGW64__)
   gettimeofday(struct timeval *,struct timezone *),
 #endif
   IsWindows95(void),
diff --git a/MagickCore/nt-base.c b/MagickCore/nt-base.c
index 0efb1b0..268b8d6 100644
--- a/MagickCore/nt-base.c
+++ b/MagickCore/nt-base.c
@@ -241,7 +241,7 @@
   return(0);
 }
 
-#if !defined(__MINGW32__)
+#if \!defined(__MINGW32__) && \!defined(__MINGW64__)
 /*
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %                                                                             %
diff --git a/MagickCore/random.c b/MagickCore/random.c
index 142e782..449c1c0 100644
--- a/MagickCore/random.c
+++ b/MagickCore/random.c
@@ -44,7 +44,7 @@
 #if defined(__VMS)
 #include <time.h>
 #endif
-#if defined(__MINGW32__)
+#if defined(__MINGW32__) || defined(__MINGW64__)
 #include <sys/time.h>
 #endif
 #include "MagickCore/studio.h"
diff --git a/MagickCore/utility-private.h b/MagickCore/utility-private.h
index 23d6f63..0a9c6dc 100644
--- a/MagickCore/utility-private.h
+++ b/MagickCore/utility-private.h
@@ -47,7 +47,7 @@
 
 static inline int access_utf8(const char *path,int mode)
 {
-#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__) || defined(__MINGW32__)
+#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__) || defined(__MINGW32__) || defined(__MINGW64__)
   return(access(path,mode));
 #else
    int
@@ -71,7 +71,7 @@
 
 static inline FILE *fopen_utf8(const char *path,const char *mode)
 {
-#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__) || defined(__MINGW32__)
+#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__) || defined(__MINGW32__) || defined(__MINGW64__)
   return(fopen(path,mode));
 #else
    FILE
@@ -105,14 +105,14 @@
 #endif
 }
 
-#if defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(__CYGWIN__) && !defined(__MINGW32__)
+#if defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(__CYGWIN__) && \!defined(__MINGW32__) && \!defined(__MINGW64__)
 typedef int
   mode_t;
 #endif
 
 static inline int open_utf8(const char *path,int flags,mode_t mode)
 {
-#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__) || defined(__MINGW32__)
+#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__) || defined(__MINGW32__) || defined(__MINGW64__)
   return(open(path,flags,mode));
 #else
    int
@@ -136,7 +136,7 @@
 
 static inline FILE *popen_utf8(const char *command,const char *type)
 {
-#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__) || defined(__MINGW32__)
+#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__) || defined(__MINGW32__) || defined(__MINGW64__)
   return(popen(command,type));
 #else
    FILE
@@ -172,7 +172,7 @@
 
 static inline int remove_utf8(const char *path)
 {
-#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__) || defined(__MINGW32__)
+#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__) || defined(__MINGW32__) || defined(__MINGW64__)
   return(unlink(path));
 #else
    int
@@ -196,7 +196,7 @@
 
 static inline int rename_utf8(const char *source,const char *destination)
 {
-#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__) || defined(__MINGW32__)
+#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__) || defined(__MINGW32__) || defined(__MINGW64__)
   return(rename(source,destination));
 #else
    int
@@ -231,7 +231,7 @@
 
 static inline int stat_utf8(const char *path,struct stat *attributes)
 {
-#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__) || defined(__MINGW32__)
+#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__) || defined(__MINGW32__) || defined(__MINGW64__)
   return(stat(path,attributes));
 #else
    int