diff --git a/ChangeLog b/ChangeLog
index 7c5c5899f9bb90a3addf81fd59b9ecab34fe530c..37e0b628f99ca972c0e6759c654881b8b79ba280 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2010-03-28  Niels M�ller  <nisse@lysator.liu.se>
+
+	* configure.ac (asm_path): For x86_64, check if compiler is
+	generating 32-bit code.
+
 2010-03-27  Niels M�ller  <nisse@lysator.liu.se>
 
 	* testsuite/hmac-test.c (test_main): Rewrote rest of tests to use
diff --git a/configure.ac b/configure.ac
index a6fe72d076ac75ee254a1ad0b67865e27f56c0cb..95a4f948c809073c276500c7324d23077d7afe82 100644
--- a/configure.ac
+++ b/configure.ac
@@ -123,7 +123,15 @@ case "$host_cpu" in
     asm_path=x86
     ;;
   [x86_64 | amd64])
-    asm_path=x86_64
+    AC_TRY_COMPILE([
+#if defined(__i386__)
+#error 32-bit x86
+#endif
+    ], [], [
+      asm_path=x86_64
+    ], [
+      asm_path=x86
+    ])
     ;;
   *sparc*)
     AC_TRY_COMPILE([