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
diff --git a/coders/bmp.c b/coders/bmp.c
index d86f0b7..b2d1e9f 100644
--- a/coders/bmp.c
+++ b/coders/bmp.c
@@ -74,7 +74,7 @@
 #define BI_JPEG  4
 #undef BI_PNG
 #define BI_PNG  5
-#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__MINGW32__)
+#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__MINGW32__) || defined(__MINGW64__)
 #undef BI_RGB
 #define BI_RGB  0
 #undef BI_RLE8
diff --git a/coders/dib.c b/coders/dib.c
index 66bef8b..b6579cd 100644
--- a/coders/dib.c
+++ b/coders/dib.c
@@ -154,7 +154,7 @@
 static MagickBooleanType DecodeImage(Image *image,
   const MagickBooleanType compression,unsigned char *pixels)
 {
-#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__MINGW32__)
+#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__MINGW32__) || defined(__MINGW64__)
 #define BI_RGB  0
 #define BI_RLE8  1
 #define BI_RLE4  2
diff --git a/coders/icon.c b/coders/icon.c
index e3ba75d..4d0b0bb 100644
--- a/coders/icon.c
+++ b/coders/icon.c
@@ -68,7 +68,7 @@
 /*
   Define declarations.
 */
-#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__MINGW32__)
+#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__MINGW32__) || defined(__MINGW64__)
 #define BI_RGB  0
 #define BI_RLE8  1
 #define BI_BITFIELDS  3
diff --git a/coders/jpeg.c b/coders/jpeg.c
index b93d3a4..89fabd3 100644
--- a/coders/jpeg.c
+++ b/coders/jpeg.c
@@ -84,7 +84,7 @@
 #include <setjmp.h>
 #if defined(MAGICKCORE_JPEG_DELEGATE)
 #define JPEG_INTERNAL_OPTIONS
-#if defined(__MINGW32__)
+#if defined(__MINGW32__) || defined(__MINGW64__)
 # define XMD_H 1  /* Avoid conflicting typedef for INT32 */
 #endif
 #undef HAVE_STDLIB_H
diff --git a/coders/msl.c b/coders/msl.c
index d0c3317..bec7f21 100644
--- a/coders/msl.c
+++ b/coders/msl.c
@@ -93,7 +93,7 @@
 #include "MagickCore/utility.h"
 #if defined(MAGICKCORE_XML_DELEGATE)
 #  if defined(MAGICKCORE_WINDOWS_SUPPORT)
-#    if defined(__MINGW32__)
+#    if defined(__MINGW32__) || defined(__MINGW64__)
 #      define _MSC_VER
 #    else
 #      include <win32config.h>
diff --git a/coders/svg.c b/coders/svg.c
index e0e92e7..2ceb6f6 100644
--- a/coders/svg.c
+++ b/coders/svg.c
@@ -75,7 +75,7 @@
 #include "MagickCore/utility.h"
 #if defined(MAGICKCORE_XML_DELEGATE)
 #  if defined(MAGICKCORE_WINDOWS_SUPPORT)
-#    if defined(__MINGW32__)
+#    if defined(__MINGW32__) || defined(__MINGW64__)
 #      define _MSC_VER
 #    else
 #      include <win32config.h>
diff --git a/coders/url.c b/coders/url.c
index dca5937..19dbd73 100644
--- a/coders/url.c
+++ b/coders/url.c
@@ -59,7 +59,7 @@
 #include "MagickCore/utility.h"
 #if defined(MAGICKCORE_XML_DELEGATE)
 #  if defined(MAGICKCORE_WINDOWS_SUPPORT)
-#    if defined(__MINGW32__)
+#    if defined(__MINGW32__) || defined(__MINGW64__)
 #      define _MSC_VER
 #    else
 #      include <win32config.h>
diff --git a/utilities/animate.c b/utilities/animate.c
index 394b532..8ff7083 100644
--- a/utilities/animate.c
+++ b/utilities/animate.c
@@ -89,7 +89,7 @@
   return(status);
 }
 
-#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__) || defined(__MINGW32__)
+#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__) || defined(__MINGW32__) || defined(__MINGW64__)
 int main(int argc,char **argv)
 {
   return(AnimateMain(argc,argv));
diff --git a/utilities/compare.c b/utilities/compare.c
index c06155e..e6adbd5 100644
--- a/utilities/compare.c
+++ b/utilities/compare.c
@@ -86,7 +86,7 @@
   return(status);
 }
 
-#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__) || defined(__MINGW32__)
+#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__) || defined(__MINGW32__) || defined(__MINGW64__)
 int main(int argc,char **argv)
 {
   return(CompareMain(argc,argv));
diff --git a/utilities/composite.c b/utilities/composite.c
index 781cb7f..f37c17f 100644
--- a/utilities/composite.c
+++ b/utilities/composite.c
@@ -80,7 +80,7 @@
   return(status);
 }
 
-#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__) || defined(__MINGW32__)
+#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__) || defined(__MINGW32__) || defined(__MINGW64__)
 int main(int argc,char **argv)
 {
   return(CompositeMain(argc,argv));
diff --git a/utilities/conjure.c b/utilities/conjure.c
index c89e283..9f6c1c4 100644
--- a/utilities/conjure.c
+++ b/utilities/conjure.c
@@ -99,7 +99,7 @@
   return(status);
 }
 
-#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__) || defined(__MINGW32__)
+#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__) || defined(__MINGW32__) || defined(__MINGW64__)
 int main(int argc,char **argv)
 {
   return(ConjureMain(argc,argv));
diff --git a/utilities/convert.c b/utilities/convert.c
index 3bfbb60..513324c 100644
--- a/utilities/convert.c
+++ b/utilities/convert.c
@@ -86,7 +86,7 @@
   return(status);
 }
 
-#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__) || defined(__MINGW32__)
+#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__) || defined(__MINGW32__) || defined(__MINGW64__)
 int main(int argc,char **argv)
 {
   return(ConvertMain(argc,argv));
diff --git a/utilities/display.c b/utilities/display.c
index 77cff27..95b69ee 100644
--- a/utilities/display.c
+++ b/utilities/display.c
@@ -94,7 +94,7 @@
   return(status);
 }
 
-#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__) || defined(__MINGW32__)
+#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__) || defined(__MINGW32__) || defined(__MINGW64__)
 int main(int argc,char **argv)
 {
   return(DisplayMain(argc,argv));
diff --git a/utilities/identify.c b/utilities/identify.c
index 7786757..b70e1c7 100644
--- a/utilities/identify.c
+++ b/utilities/identify.c
@@ -87,7 +87,7 @@
   return(status);
 }
 
-#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__) || defined(__MINGW32__)
+#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__) || defined(__MINGW32__) || defined(__MINGW64__)
 int main(int argc,char **argv)
 {
   return(IdentifyMain(argc,argv));
diff --git a/utilities/import.c b/utilities/import.c
index b747fb3..4dac733 100644
--- a/utilities/import.c
+++ b/utilities/import.c
@@ -86,7 +86,7 @@
   return(status);
 }
 
-#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__) || defined(__MINGW32__)
+#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__) || defined(__MINGW32__) || defined(__MINGW64__)
 int main(int argc,char **argv)
 {
   return(ImportMain(argc,argv));
diff --git a/utilities/magick.c b/utilities/magick.c
index 99e6e96..9ae354a 100644
--- a/utilities/magick.c
+++ b/utilities/magick.c
@@ -79,7 +79,7 @@
   return(status);
 }
 
-#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__) || defined(__MINGW32__)
+#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__) || defined(__MINGW32__) || defined(__MINGW64__)
 int main(int argc,char **argv)
 {
   return(MagickMain(argc,argv));
diff --git a/utilities/mogrify.c b/utilities/mogrify.c
index bb39dc1..2f49ac1 100644
--- a/utilities/mogrify.c
+++ b/utilities/mogrify.c
@@ -82,7 +82,7 @@
   return(status);
 }
 
-#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__) || defined(__MINGW32__)
+#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__) || defined(__MINGW32__) || defined(__MINGW64__)
 int main(int argc,char **argv)
 {
   return(MogrifyMain(argc,argv));
diff --git a/utilities/montage.c b/utilities/montage.c
index 0ee291d..13ad8e3 100644
--- a/utilities/montage.c
+++ b/utilities/montage.c
@@ -82,7 +82,7 @@
   return(status);
 }
 
-#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__) || defined(__MINGW32__)
+#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__) || defined(__MINGW32__) || defined(__MINGW64__)
 int main(int argc,char **argv)
 {
   return(MontageMain(argc,argv));
diff --git a/utilities/stream.c b/utilities/stream.c
index 0ba165d..324c5cf 100644
--- a/utilities/stream.c
+++ b/utilities/stream.c
@@ -82,7 +82,7 @@
   return(status);
 }
 
-#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__) || defined(__MINGW32__)
+#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__) || defined(__MINGW32__) || defined(__MINGW64__)
 int main(int argc,char **argv)
 {
   return(StreamMain(argc,argv));