diff --git a/ChangeLog b/ChangeLog
index e0b32058780f6cf3df4954a91d0504d015fc6e59..6bcf524a8aa601cb1db0f0aaa4bd136c09153e85 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2013-05-15  Niels Möller  <nisse@lysator.liu.se>
+
+	* configure.ac (asm_path): Handle armv6 and armv7 differently from
+	older ARMs. Add the arm/v6 directory to asm_path when appropriate.
+
+	* arm/v6/aes-encrypt-internal.asm: Moved into v6 directory. Uses
+	the uxtb instruction which is not available for older ARMs.
+	* arm/v6/aes-decrypt-internal.asm: Likewise.
+
 2013-05-03  Niels Möller  <nisse@lysator.liu.se>
 
 	* cast128.c: Adapt to new struct cast128_ctx.
diff --git a/arm/aes-decrypt-internal.asm b/arm/v6/aes-decrypt-internal.asm
similarity index 100%
rename from arm/aes-decrypt-internal.asm
rename to arm/v6/aes-decrypt-internal.asm
diff --git a/arm/aes-encrypt-internal.asm b/arm/v6/aes-encrypt-internal.asm
similarity index 100%
rename from arm/aes-encrypt-internal.asm
rename to arm/v6/aes-encrypt-internal.asm
diff --git a/configure.ac b/configure.ac
index a4109276ac93fd8fb67b961dde83fd90b6379009..3dd3a990adee0a2c0ac64ff9f83ab658f7eb2d5b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -237,14 +237,18 @@ if test "x$enable_assembler" = xyes ; then
 	asm_path=sparc32
       fi
       ;;
-    arm*)
+    armv6* | armv7*)
       NETTLE_CHECK_ARM_NEON
 
-      asm_path=arm
+      asm_path="arm/v6 arm"
+      
       if test "x$enable_arm_neon" = xyes ; then
 	asm_path="arm/neon $asm_path"
       fi
       ;;
+    arm*)
+      asm_path=arm
+      ;;
     *)
       enable_assembler=no
       ;;