Index: kernel/arch/ia32/src/asm.S
===================================================================
--- kernel/arch/ia32/src/asm.S	(revision 80c941658b6963ac942c8ada940935259b73c370)
+++ kernel/arch/ia32/src/asm.S	(revision 246f939e5a6aa9f58ef53bebdf4fb6079351f238)
@@ -372,20 +372,19 @@
 		.if (1 << \i) & ERROR_WORD_INTERRUPT_LIST
 			/*
-			 * Exception with error word: do nothing
+			 * Exception with error word.
 			 */
+			subl $ISTATE_SOFT_SIZE, %esp
 		.else
 			/*
 			 * Exception without error word: fake up one
 			 */
-			pushl $0
+			subl $(ISTATE_SOFT_SIZE + 4), %esp
 		.endif
 	.else
 		/*
-		 * Interrupt: fake up one
+		 * Interrupt: fake up an error word 
 		 */
-		pushl $0
+		subl $(ISTATE_SOFT_SIZE + 4), %esp
 	.endif
-	
-	subl $ISTATE_SOFT_SIZE, %esp
 	
 	/*
