diff --git a/src/p_mobj.c b/src/p_mobj.c
index 5a508e008e72382f178ae8f0135e99a907399c07..00e2cd9b7577048bb081c6ccb6c7f8e1cdf4885e 100644
--- a/src/p_mobj.c
+++ b/src/p_mobj.c
@@ -7491,11 +7491,6 @@ static void P_RosySceneryThink(mobj_t *mobj)
 
 static void P_MobjSceneryThink(mobj_t *mobj)
 {
-	if (LUA_HookMobj(mobj, MOBJ_HOOK(MobjThinker)))
-		return;
-	if (P_MobjWasRemoved(mobj))
-		return;
-
 	if ((mobj->flags2 & MF2_SHIELD) && !P_AddShield(mobj))
 		return;
 
@@ -10181,13 +10176,6 @@ void P_MobjThinker(mobj_t *mobj)
 		}
 	}
 
-	// Special thinker for scenery objects
-	if (mobj->flags & MF_SCENERY)
-	{
-		P_MobjSceneryThink(mobj);
-		return;
-	}
-
 	// Check for a Lua thinker first
 	if (!mobj->player)
 	{
@@ -10202,6 +10190,13 @@ void P_MobjThinker(mobj_t *mobj)
 			return;
 	}
 
+	// Special thinker for scenery objects
+	if (mobj->flags & MF_SCENERY)
+	{
+		P_MobjSceneryThink(mobj);
+		return;
+	}
+
 	// if it's pushable, or if it would be pushable other than temporary disablement, use the
 	// separate thinker
 	if (mobj->flags & MF_PUSHABLE || (mobj->info->flags & MF_PUSHABLE && mobj->fuse))