diff --git a/x86/sha1-compress.asm b/x86/sha1-compress.asm
index 8caf6627b7c141171ebe1b37fb82f7022dfb8eff..37140f9dae7841dbab746ee77ea760013026fc3d 100644
--- a/x86/sha1-compress.asm
+++ b/x86/sha1-compress.asm
@@ -125,12 +125,13 @@ define(<ROUND_F1>, <
 	add	T2, $5
 >)
 
+C FIXME: Seems to be a slow sequence.
 define(<ROUND_F1_NOEXP>, <
 	mov	$4, T2
 	xor	$3, T2
 	and	$2, T2
 	xor	$4, T2
-	add	OFFSET(eval($6 % 16)) (DATA), T2
+	add	OFFSET($6) (DATA), T2
 	rol	<$>30, $2
 	mov	$1, T1
 	rol	<$>5, T1
@@ -220,30 +221,29 @@ PROLOGUE(_nettle_sha1_compress)
 	movl	12(T1), SD
 	movl	16(T1), SE
 
-	movl	$ K1VALUE, KVALUE
-	ROUND(SA, SB, SC, SD, SE, <F1>, NOEXPAND( 0))
-	ROUND(SE, SA, SB, SC, SD, <F1>, NOEXPAND( 1))
-	ROUND(SD, SE, SA, SB, SC, <F1>, NOEXPAND( 2))
-	ROUND(SC, SD, SE, SA, SB, <F1>, NOEXPAND( 3))
-	ROUND(SB, SC, SD, SE, SA, <F1>, NOEXPAND( 4))
-
-	ROUND(SA, SB, SC, SD, SE, <F1>, NOEXPAND( 5))
-	ROUND(SE, SA, SB, SC, SD, <F1>, NOEXPAND( 6))
-	ROUND(SD, SE, SA, SB, SC, <F1>, NOEXPAND( 7))
-	ROUND(SC, SD, SE, SA, SB, <F1>, NOEXPAND( 8))
-	ROUND(SB, SC, SD, SE, SA, <F1>, NOEXPAND( 9))
-
-	ROUND(SA, SB, SC, SD, SE, <F1>, NOEXPAND(10))
-	ROUND(SE, SA, SB, SC, SD, <F1>, NOEXPAND(11))
-	ROUND(SD, SE, SA, SB, SC, <F1>, NOEXPAND(12))
-	ROUND(SC, SD, SE, SA, SB, <F1>, NOEXPAND(13))
-	ROUND(SB, SC, SD, SE, SA, <F1>, NOEXPAND(14))
-
-	ROUND(SA, SB, SC, SD, SE, <F1>, NOEXPAND(15))
-	EXPAND(16) ROUND(SE, SA, SB, SC, SD, <F1>)
-	EXPAND(17) ROUND(SD, SE, SA, SB, SC, <F1>)
-	EXPAND(18) ROUND(SC, SD, SE, SA, SB, <F1>)
-	EXPAND(19) ROUND(SB, SC, SD, SE, SA, <F1>)
+	ROUND_F1_NOEXP(SA, SB, SC, SD, SE,  0)
+	ROUND_F1_NOEXP(SE, SA, SB, SC, SD,  1)
+	ROUND_F1_NOEXP(SD, SE, SA, SB, SC,  2)
+	ROUND_F1_NOEXP(SC, SD, SE, SA, SB,  3)
+	ROUND_F1_NOEXP(SB, SC, SD, SE, SA,  4)
+
+	ROUND_F1_NOEXP(SA, SB, SC, SD, SE,  5)
+	ROUND_F1_NOEXP(SE, SA, SB, SC, SD,  6)
+	ROUND_F1_NOEXP(SD, SE, SA, SB, SC,  7)
+	ROUND_F1_NOEXP(SC, SD, SE, SA, SB,  8)
+	ROUND_F1_NOEXP(SB, SC, SD, SE, SA,  9)
+
+	ROUND_F1_NOEXP(SA, SB, SC, SD, SE, 10)
+	ROUND_F1_NOEXP(SE, SA, SB, SC, SD, 11)
+	ROUND_F1_NOEXP(SD, SE, SA, SB, SC, 12)
+	ROUND_F1_NOEXP(SC, SD, SE, SA, SB, 13)
+	ROUND_F1_NOEXP(SB, SC, SD, SE, SA, 14)
+
+	ROUND_F1_NOEXP(SA, SB, SC, SD, SE, 15)
+	ROUND_F1(SE, SA, SB, SC, SD, 16)
+	ROUND_F1(SD, SE, SA, SB, SC, 17)
+	ROUND_F1(SC, SD, SE, SA, SB, 18)
+	ROUND_F1(SB, SC, SD, SE, SA, 19)
 
 	ROUND_F2(SA, SB, SC, SD, SE, 20, K2VALUE)
 	ROUND_F2(SE, SA, SB, SC, SD, 21, K2VALUE)