diff --git a/configure.in b/configure.in
old mode 100644
new mode 100755
index 8e2881c..80170c4
--- a/configure.in
+++ b/configure.in
@@ -88,6 +88,7 @@ build_bitq=no
 is_cygwin=no
 is_mingw=no
 is_win32=no
+is_win64=no
 is_darwin=no
 
 if test $cross_compiling = no; then
@@ -470,11 +471,21 @@ case $host in
     fi
 
     AC_DEFINE(IS_WIN32, 1, [1 if building for Win32.])
+    AC_DEFINE(IS_WIN64, 0, [0 if not buidling for Win64.])
     AC_DEFINE(IS_DARWIN, 0, [0 if not building for Darwin.])
     ;;
   *-mingw*)
     is_mingw=yes
     is_win32=yes
+   
+    AC_COMPILE_IFELSE(AC_LANG_PROGRAM([],[return __MINGW64__;]),
+      [is_win64=yes],[is_win64=no])
+    if test $is_win64 = yes; then
+      AC_DEFINE(IS_WIN64, 1, [1 if building for MinGW-W64.])
+    else
+      AC_DEFINE(IS_WIN64, 0, [0 if building for MinGW-W32.])
+    fi
+    
     parport_use_ppdev=no
 
     if test x$parport_use_giveio = xno; then
@@ -496,6 +507,7 @@ case $host in
 
     AC_DEFINE(IS_CYGWIN, 0, [0 if not building for Cygwin.])
     AC_DEFINE(IS_WIN32, 0, [0 if not building for Win32.])
+    AC_DEFINE(IS_WIN64, 0, [0 if not buidling for Win64.])
     AC_DEFINE(IS_DARWIN, 1, [1 if building for Darwin.])
     ;;
   *)
@@ -505,6 +517,7 @@ case $host in
     parport_use_giveio=no
     AC_DEFINE(IS_CYGWIN, 0, [0 if not building for Cygwin.])
     AC_DEFINE(IS_WIN32, 0, [0 if not building for Win32.])
+    AC_DEFINE(IS_WIN64, 0, [0 if not buidling for Win64.])
     AC_DEFINE(IS_DARWIN, 0, [0 if not building for Darwin.])
     ;;
 esac
@@ -952,6 +965,7 @@ AM_CONDITIONAL(ARMJTAGEW, test $build_armjtagew = yes)
 AM_CONDITIONAL(IS_CYGWIN, test $is_cygwin = yes)
 AM_CONDITIONAL(IS_MINGW, test $is_mingw = yes)
 AM_CONDITIONAL(IS_WIN32, test $is_win32 = yes)
+AM_CONDITIONAL(IS_WIN64, test $is_win32 = yes)
 AM_CONDITIONAL(IS_DARWIN, test $is_darwin = yes)
 AM_CONDITIONAL(BITQ, test $build_bitq = yes)
 
diff --git a/src/Makefile.am b/src/Makefile.am
old mode 100644
new mode 100755
index a223f95..c74d90e
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -43,7 +43,12 @@ libopenocd_la_CPPFLAGS += $(AM_CPPFLAGS) $(CPPFLAGS)
 libopenocd_la_LDFLAGS = $(all_libraries)
 
 if IS_MINGW
+if IS_WIN64
+# MinGW-W64 does not have the wsock32 lib
+MINGWLDADD = -lws2_32
+else
 MINGWLDADD = -lwsock32
+endif
 else
 MINGWLDADD =
 endif
