diff --git a/ChangeLog b/ChangeLog
index 2ceea540f7e603ddb8dcf1ba67621f6269ad466c..1af590f7d3074860df80b20029829ed9d37d417f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2011-11-25  Niels M�ller  <nisse@lysator.liu.se>
+
+	From Martin Storsj�:
+	* configure.ac (W64_ABI): New variable, set when compiling for
+	64-bit M$ windows.
+	* config.m4.in (W64_ABI): Define, from configure substitution.
+
 2011-11-24  Niels M�ller  <nisse@lysator.liu.se>
 
 	From Martin Storsj�:
diff --git a/config.m4.in b/config.m4.in
index 50f9ae7d714d211ad48ed2f14af25547aa05e21c..666cf82588e5accf72d46ec0e03379af755cdc95 100644
--- a/config.m4.in
+++ b/config.m4.in
@@ -4,6 +4,7 @@ define(<ELF_STYLE>, <@ASM_ELF_STYLE@>)dnl
 define(<TYPE_FUNCTION>, <@ASM_TYPE_FUNCTION@>)dnl
 define(<ALIGN_LOG>, <@ASM_ALIGN_LOG@>)dnl
 define(<ALIGNOF_UINT64_T>, <@ALIGNOF_UINT64_T@>)dnl
+define(<W64_ABI>, <@W64_ABI@>)dnl
 divert(1)
 @ASM_MARK_NOEXEC_STACK@
 divert
diff --git a/configure.ac b/configure.ac
index 3b2a3e6a08fdc5a0f7bd0176d66f484362292797..abe43aa1adeaac9d184be49ca98eb617d0c89573 100644
--- a/configure.ac
+++ b/configure.ac
@@ -256,6 +256,7 @@ IF_DLL='#'
 LIBNETTLE_FILE_SRC='$(LIBNETTLE_FORLINK)'
 LIBHOGWEED_FILE_SRC='$(LIBHOGWEED_FORLINK)'
 EMULATOR=''
+W64_ABI=no
 
 case "$host_os" in
   mingw32*|cygwin*)
@@ -283,6 +284,9 @@ case "$host_os" in
 		;;
 	esac
     fi
+    if test "x$ABI" = x64 ; then
+        W64_ABI=yes
+    fi
     LIBNETTLE_SONAME=''
     LIBNETTLE_FILE='libnettle.dll.a'
     LIBNETTLE_FILE_SRC='$(LIBNETTLE_FILE)'
@@ -456,6 +460,7 @@ AC_SUBST(ASM_ELF_STYLE)
 AC_SUBST(ASM_TYPE_FUNCTION)
 AC_SUBST(ASM_MARK_NOEXEC_STACK)
 AC_SUBST(ASM_ALIGN_LOG)
+AC_SUBST(W64_ABI)
 AC_SUBST(EMULATOR)
 
 AC_SUBST(SHLIBCFLAGS)