diff --git a/sparc/aes.asm b/sparc/aes.asm
index c1ae5fbc6e1dd1f24c1aa7341503618e5d6fc841..ead8da4e6d0780b0517485a39501d71beb2717d0 100644
--- a/sparc/aes.asm
+++ b/sparc/aes.asm
@@ -110,13 +110,13 @@ define(<AES_FINAL_ROUND>, <
 	ld	[IDX1+$1], t1		! 1
 	ldub	[wtxt+t1], t1		! 1
 
-	ld	[wtxt+$1], t0		! 0
+	ldub	[wtxt+$1+3], t0		! 0
 	! IDX2(j) = j XOR 2
-	lduh	[wtxt+eval($1 ^ 8)], t2	! 2
-	and	t0, 255, t0		! 0
+	ldub	[wtxt+eval($1 ^ 8)+1], t2	! 2
+	C and	t0, 255, t0		! 0
 	ld	[IDX3 + $1], t3		! 3
 	
-	and	t2, 255, t2		! 2
+	C and	t2, 255, t2		! 2
 	ldub	[T+t1], t1		! 1
 	ldub	[T+t0], t0		! 0
 	sll	t1, 8, t1		! 1