diff --git a/sparc/aes.asm b/sparc/aes.asm
index 5490e2172a53b42390ce8baf116a8c16a055837d..ebe372fcb10b783349f6727e0a7d0048a6f8fd2a 100644
--- a/sparc/aes.asm
+++ b/sparc/aes.asm
@@ -66,19 +66,21 @@ define(t3, %o3)
 C AES_LOAD(i)
 C Get one word of input, XOR with first subkey, store in wtxt
 define(<AES_LOAD>, <
-	ldub	[src+$1+3], t3
+	ldub	[src+$1], t0
+	ldub	[src+$1+1], t1
 	ldub	[src+$1+2], t2
+	sll	t1, 8, t1
+	or	t0, t1, t0	
+	ldub	[src+$1+3], t3
 	sll	t3, 24, t3
-	ldub	[src+$1+1], t1
 	
 	sll	t2, 16, t2
 	or	t3, t2, t3
-	ldub	[src+$1], t0
-	sll	t1, 8, t1
+
 	
 	! Get subkey
 	ld	[ctx + $1], t2
-	or	t3, t1, t3
+	C or	t3, t1, t3
 	or	t3, t0, t3
 	xor	t3, t2, t3