diff --git a/Emulator/Base/MsgQueueTypes.h b/Emulator/Base/MsgQueueTypes.h
index 8ebe9d0a5..b026a80de 100644
--- a/Emulator/Base/MsgQueueTypes.h
+++ b/Emulator/Base/MsgQueueTypes.h
@@ -57,6 +57,8 @@ enum_long(MSG_TYPE)
     MSG_CPU_HALT,
     
     // Agnus
+    MSG_EOL_REACHED,
+    MSG_EOF_REACHED,
     MSG_BEAMTRAP_REACHED,
     MSG_BEAMTRAP_UPDATED,
 
@@ -171,6 +173,8 @@ struct MsgTypeEnum : vamiga::util::Reflection<MsgTypeEnum, MsgType>
             case MSG_SWTRAP_REACHED:        return "SWTRAP_REACHED";
             case MSG_CPU_HALT:              return "CPU_HALT";
 
+            case MSG_EOL_REACHED:           return "EOL_REACHED";
+            case MSG_EOF_REACHED:           return "EOF_REACHED";
             case MSG_BEAMTRAP_REACHED:      return "BEAMTRAP_REACHED";
             case MSG_BEAMTRAP_UPDATED:      return "BEAMTRAP_UPDATED";
 
diff --git a/Emulator/Components/Amiga.cpp b/Emulator/Components/Amiga.cpp
index 7a394e5f2..de8f7d89b 100644
--- a/Emulator/Components/Amiga.cpp
+++ b/Emulator/Components/Amiga.cpp
@@ -843,6 +843,22 @@ Amiga::computeFrame()
                 break;
             }
 
+            // Shall we stop at the end of the current line?
+            if (flags & RL::EOL_REACHED) {
+                clearFlag(RL::EOL_REACHED);
+                msgQueue.put(MSG_EOL_REACHED);
+                throw StateChangeException(STATE_PAUSED);
+                break;
+            }
+  
+            // Shall we stop at the end of the current frame?
+            if (flags & RL::EOF_REACHED) {
+                clearFlag(RL::EOF_REACHED);
+                msgQueue.put(MSG_EOF_REACHED);
+                throw StateChangeException(STATE_PAUSED);
+                break;
+            }
+
             // Did we reach a breakpoint?
             if (flags & RL::BREAKPOINT_REACHED) {
                 clearFlag(RL::BREAKPOINT_REACHED);
diff --git a/Emulator/Components/AmigaTypes.h b/Emulator/Components/AmigaTypes.h
index 9f8b01d76..742ea41b2 100644
--- a/Emulator/Components/AmigaTypes.h
+++ b/Emulator/Components/AmigaTypes.h
@@ -352,16 +352,18 @@ namespace RL
 {
 constexpr u32 STOP               = (1 << 0);
 constexpr u32 SOFTSTOP_REACHED   = (1 << 1);
-constexpr u32 BREAKPOINT_REACHED = (1 << 2);
-constexpr u32 WATCHPOINT_REACHED = (1 << 3);
-constexpr u32 CATCHPOINT_REACHED = (1 << 4);
-constexpr u32 SWTRAP_REACHED     = (1 << 5);
-constexpr u32 BEAMTRAP_REACHED   = (1 << 6);
-constexpr u32 COPPERBP_REACHED   = (1 << 7);
-constexpr u32 COPPERWP_REACHED   = (1 << 8);
-constexpr u32 AUTO_SNAPSHOT      = (1 << 9);
-constexpr u32 USER_SNAPSHOT      = (1 << 10);
-constexpr u32 SYNC_THREAD        = (1 << 11);
+constexpr u32 EOL_REACHED        = (1 << 2);
+constexpr u32 EOF_REACHED        = (1 << 3);
+constexpr u32 BREAKPOINT_REACHED = (1 << 4);
+constexpr u32 WATCHPOINT_REACHED = (1 << 5);
+constexpr u32 CATCHPOINT_REACHED = (1 << 6);
+constexpr u32 SWTRAP_REACHED     = (1 << 7);
+constexpr u32 BEAMTRAP_REACHED   = (1 << 8);
+constexpr u32 COPPERBP_REACHED   = (1 << 9);
+constexpr u32 COPPERWP_REACHED   = (1 << 10);
+constexpr u32 AUTO_SNAPSHOT      = (1 << 11);
+constexpr u32 USER_SNAPSHOT      = (1 << 12);
+constexpr u32 SYNC_THREAD        = (1 << 13);
 };
 
 #endif
diff --git a/Emulator/HeadlessScripts.h b/Emulator/HeadlessScripts.h
index bc6721a34..7901e881e 100644
--- a/Emulator/HeadlessScripts.h
+++ b/Emulator/HeadlessScripts.h
@@ -484,7 +484,7 @@ static const char *smokeTestScript[] = {
     "? df3",
     "? df3 disk",
 
-    "? host",
+    "? thread",
     "? server",
 
     "shutdown",
diff --git a/GUI/MyController.swift b/GUI/MyController.swift
index 67bfa878c..a74a54b69 100644
--- a/GUI/MyController.swift
+++ b/GUI/MyController.swift
@@ -491,7 +491,7 @@ extension MyController {
         case .CPU_HALT:
             refreshStatusBar()
             
-        case .BEAMTRAP_REACHED:
+        case .BEAMTRAP_REACHED, .EOF_REACHED, .EOL_REACHED:
 
             inspector?.signalBeamtrap()