diff --git a/x86/arcfour-crypt.asm b/x86/arcfour-crypt.asm
index b997abaff7a7281f0c6c75c053cb055502f879f2..7b2b2e67afe7dfe8f70a847c015c1d338d1e4354 100644
--- a/x86/arcfour-crypt.asm
+++ b/x86/arcfour-crypt.asm
@@ -28,10 +28,10 @@ C MA 02111-1307, USA.
 	.type  nettle_arcfour_crypt,@function
 nettle_arcfour_crypt:
 	C save all registers that need to be saved
-	pushl	%ebx		C  16(%esp)
-	pushl	%ebp		C  12(%esp)
-	pushl	%esi		C  8(%esp)
-	pushl	%edi		C  4(%esp)
+	pushl	%ebx		C  12(%esp)
+	pushl	%ebp		C  8(%esp)
+	pushl	%esi		C  4(%esp)
+	pushl	%edi		C  0(%esp)
 
 	C ctx = 20(%esp)
 	C length = 24(%esp)