diff --git a/cMIPS/include/start.s b/cMIPS/include/start.s
index b69f4a2d3435f814b7b9a901f77ad6362968bd2f..042e402ed8f73b3f32d53ef552d59e5c36e99f3b 100644
--- a/cMIPS/include/start.s
+++ b/cMIPS/include/start.s
@@ -209,18 +209,16 @@ excp_tbl: # see Table 8-25, pg 95,96
 	j h_Ov    # 12 overflow
 	nop
 
-	j h_trap  # 13 trap
+	wait 0x0d # 13 trap                             -- abort simulation
 	nop
 	
-	wait 0x14 # reserved, should never get here     -- abort simulation
+	wait 0x0e # reserved, should never get here     -- abort simulation
 	nop
 	
-	wait 0x15 # PF exception, should never get here -- abort simulation
+	wait 0x0f # FP exception, should never get here -- abort simulation
 	nop
 
-
-h_trap: wait 13
-
+	
 h_Mod:
 h_TLBL:
 h_TLBS:	
@@ -229,8 +227,6 @@ h_breakpoint:
 h_RI:
 h_CpU:
 h_Ov:
-
-
 	
 excp_0180ret:
 	lui  $k1, %hi(_excp_saves) # Read previous contents of STATUS
@@ -332,7 +328,7 @@ _excp_BFC0:
 	nop
 	nop
 	nop
-	wait 0x38
+	wait 0xff		# signal exception and abort simulation
 	nop
 	.end _excp_BFC0
 	##---------------------------------------------------------------
diff --git a/cMIPS/vhdl/core.vhd b/cMIPS/vhdl/core.vhd
index 6e9275f0646c9e98e385236ed4b0b7dd85342bf6..7aafb4df5241ebb32c01841e464028e3a80ee607 100644
--- a/cMIPS/vhdl/core.vhd
+++ b/cMIPS/vhdl/core.vhd
@@ -857,9 +857,10 @@ begin
 
       -- simulation aborted by instruction "wait N"
       assert not(exception = exWAIT and syscall_n /= x"80000")
-        report LF & "INVALID REFERENCE at EPC="& SLV32HEX(EPC) &
-        " opc="& SLV2STR(opcode) & " fun=" & SLV2STR(func) &
-        " instr=" & SLV32HEX(RF_instruction) & 
+        report LF & "ABORTED at EPC="& SLV32HEX(EPC) &
+        " bad="& SLV32HEX(BadVAddr) &
+        " opc="& SLV2STR(opcode) & " wait=" & SLV2STR(syscall_n(7 downto 0)) &
+        " instr=" & SLV32HEX(RF_instruction) &
         LF & "SIMULATION ABORTED AT EXCEPTION HANDLER;"
         severity failure;