diff --git a/lib/cpu/m68k/rtl/m68k.vhd b/lib/cpu/m68k/rtl/m68k.vhd
index a32c9f4..3d2091b 100644
--- a/lib/cpu/m68k/rtl/m68k.vhd
+++ b/lib/cpu/m68k/rtl/m68k.vhd
@@ -1490,6 +1490,10 @@ begin
             SVmode <= preSVmode;
           end if;
         end if;
+        if trap_berr = '1' or trap_illegal = '1' or trap_addr_error = '1' or trap_priv = '1' then
+          make_trace <= '0';
+          FlagsSR(7) <= '0';
+        end if;
         if set.changeMode = '1' then
           preSVmode <= not preSVmode;
           FlagsSR(5) <= not preSVmode;