diff --git a/game/engines/default/engine/interface/PlayerRun.lua b/game/engines/default/engine/interface/PlayerRun.lua
index 4b63873c81c428ed36fa8edbfcdc4015b7089bc2..c1c769ab5053a927778fde024d047155ed62f2d1 100644
--- a/game/engines/default/engine/interface/PlayerRun.lua
+++ b/game/engines/default/engine/interface/PlayerRun.lua
@@ -224,7 +224,14 @@ function _M:runStep()
 		if not self.running then return false end
 		if not self.running.busy then
 			self.running.cnt = self.running.cnt + 1
-		elseif self.running.busy.no_energy then
+		end
+		-- Check after running to spot actors that may slip away from us; we still won't get a turn but we'll get the next one
+		ret, msg = self:runCheck()
+		if not ret then
+			self:runStop(msg)
+			return false
+		end
+		if self.running.busy and self.running.busy.no_energy then
 			return self:runStep()
 		end
 		return true