diff --git a/x86/aes-encrypt.asm b/x86/aes-encrypt.asm
index a76ec156394fd8cf86b5b87584199c5073f2877b..e929b8776a0d00857e63bb14dc6b2ca5a2a8dc0f 100644
--- a/x86/aes-encrypt.asm
+++ b/x86/aes-encrypt.asm
@@ -202,7 +202,7 @@ C .Laes_got_t:
 	popl	%ebx
 	popl	%eax
 
-	C // S-box substitution
+	C S-box substitution
 	mov	$4,%edi
 .Lsubst:	
 	movl	%eax,%ebp
@@ -228,21 +228,15 @@ C .Laes_got_t:
 	decl	%edi
 	jnz	.Lsubst
 
-C .Laes_got_tlast:		
-	xorl	(%esi),%eax	C  add last key to plaintext
-	xorl	4(%esi),%ebx
-	xorl	8(%esi),%ecx
-	xorl	12(%esi),%edx
-C .Laes_got_result:
-	C // store encrypted data back to caller's buffer
+	C Add last subkey, and store encrypted data
 	movl	28(%esp),%edi
-	movl	%eax,(%edi)
-	movl	%ebx,4(%edi)
-	movl	%ecx,8(%edi)
-	movl	%edx,12(%edi)
-
+	AES_STORE(%esi, %edi)
+	
 	addl	$16, 28(%esp)	C Increment destination pointer
-	subl	$16, 24(%esp)
+	subl	$16, 24(%esp)	C Length
+
+	C NOTE: Will loop forever if input data is not an
+	C integer number of blocks.
 	jnz	.Lencrypt_block_loop
 
 .Lencrypt_end: