diff --git a/src/lua_maplib.c b/src/lua_maplib.c
index f8e2808a200837c133a8a4ebbc8438dc5aef38f7..6b489f22b1939941c0ebf83a5a3ae0b7e215de5a 100644
--- a/src/lua_maplib.c
+++ b/src/lua_maplib.c
@@ -486,6 +486,8 @@ static int lib_iterateSectorThinglist(lua_State *L)
 	if (!lua_isnil(L, 1))
 	{
 		thing = *((mobj_t **)luaL_checkudata(L, 1, META_MOBJ));
+		if (P_MobjWasRemoved(thing))
+			return luaL_error(L, "current entry in thinglist was removed; avoid calling P_RemoveMobj on entries!");
 		thing = thing->snext;
 	}
 	else