diff --git a/sparc/aes.asm b/sparc/aes.asm
index 8cb5d83f5f2e9e59b9fbfa727d38960dcb550058..79bd2cd0170c009dd1715d253466a12aff1295f9 100644
--- a/sparc/aes.asm
+++ b/sparc/aes.asm
@@ -64,15 +64,13 @@ _aes_crypt:
 	! wtxt
 	mov	%l1, %g4
 
-	! round:	%i5
-	! 4*round:	%i3
-	mov	0, %i5
+	! 4*i:	%i3
+	mov	0, %i3
 .Lround_loop:
 	add	T, AES_SIDX3, %i4
 .Linner_loop:
 	! AES_IDX1
 	ld	[%i4-32], %g3
-	sll	%i5, 2, %i3
 
 	! AES_IDX2
 	ld	[%i4-16], %i2
@@ -103,12 +101,16 @@ _aes_crypt:
 	ld	[T+%i2], %g3
 	xor	%g2, %i0, %g2
 	xor	%g2, %i1, %g2
-	add	%i5, 1, %i5
+
+	add	%i4, 4, %i4
+	
 	xor	%g2, %g3, %g2
 	st	%g2, [%l0+%i3]
-	cmp	%i5, 3
+
+	cmp	%i3, 8
+
 	bleu	.Linner_loop
-	add	%i4, 4, %i4
+	add	%i3, 4, %i3
 	
 	sll	%g1, 4, %g2
 	add	%g2, ctx, %i1
@@ -128,7 +130,8 @@ _aes_crypt:
 	add	%g1, 1, %g1
 	cmp	%g1, %o7
 	blu	.Lround_loop
-	mov	0, %i5
+	mov	0, %i3
+
 	sll	%g1, 4, %g2
 	
 	! final round