diff --git a/src/dehacked.c b/src/dehacked.c
index 0fd914f25d8f47c4f7798e8e9ac2e6145926275d..4575d929bf1661bfed692927a4450a12fb7efc29 100644
--- a/src/dehacked.c
+++ b/src/dehacked.c
@@ -7174,7 +7174,6 @@ static const char *const MOBJFLAG2_LIST[] = {
 	"EXPLOSION",	// Thrown ring has explosive properties
 	"SCATTER",		// Thrown ring has scatter properties
 	"BEYONDTHEGRAVE",// Source of this missile has died and has since respawned.
-	"PUSHED",		// Mobj was already pushed this tic
 	"SLIDEPUSH",	// MF_PUSHABLE that pushes continuously.
 	"CLASSICPUSH",	// Drops straight down when object has negative Z.
 	"STANDONME",	// While not pushable, stand on me anyway.
@@ -7203,6 +7202,7 @@ static const char *const MOBJEFLAG_LIST[] = {
 	"JUSTSTEPPEDDOWN", // used for ramp sectors
 	"VERTICALFLIP", // Vertically flip sprite/allow upside-down physics
 	"GOOWATER", // Goo water
+	"PUSHED", // Mobj was already pushed this tic
 	NULL
 };
 
diff --git a/src/p_mobj.c b/src/p_mobj.c
index cac4bc24bc4b326b18ff79f21107f53a7419b205..b1f1bbc0b0eb54b66348e9112e127c02ebc69d1c 100644
--- a/src/p_mobj.c
+++ b/src/p_mobj.c
@@ -5448,7 +5448,7 @@ void P_MobjThinker(mobj_t *mobj)
 	if (mobj->tracer && P_MobjWasRemoved(mobj->tracer))
 		P_SetTarget(&mobj->tracer, NULL);
 
-	mobj->flags2 &= ~MF2_PUSHED;
+	mobj->eflags &= ~MFE_PUSHED;
 
 	// 970 allows ANY mobj to trigger a linedef exec
 	if (mobj->subsector && GETSECSPECIAL(mobj->subsector->sector->special, 2) == 8)
diff --git a/src/p_mobj.h b/src/p_mobj.h
index 6d120c4733b1f54ff25cbeab05b691891722c108..a8316675d2f9c3ff614164c0dc6133653eee97b9 100644
--- a/src/p_mobj.h
+++ b/src/p_mobj.h
@@ -175,24 +175,23 @@ typedef enum
 	MF2_EXPLOSION      = 1<<7,  // Thrown ring has explosive properties
 	MF2_SCATTER        = 1<<8,  // Thrown ring has scatter properties
 	MF2_BEYONDTHEGRAVE = 1<<9,  // Source of this missile has died and has since respawned.
-	MF2_PUSHED         = 1<<10, // Mobj was already pushed this tic
-	MF2_SLIDEPUSH      = 1<<11, // MF_PUSHABLE that pushes continuously.
-	MF2_CLASSICPUSH    = 1<<12, // Drops straight down when object has negative Z.
-	MF2_STANDONME      = 1<<13, // While not pushable, stand on me anyway.
-	MF2_INFLOAT        = 1<<14, // Floating to a height for a move, don't auto float to target's height.
-	MF2_DEBRIS         = 1<<15, // Splash ring from explosion ring
-	MF2_NIGHTSPULL     = 1<<16, // Attracted from a paraloop
-	MF2_JUSTATTACKED   = 1<<17, // can be pushed by other moving mobjs
-	MF2_FIRING         = 1<<18, // turret fire
-	MF2_SUPERFIRE      = 1<<19, // Firing something with Super Sonic-stopping properties. Or, if mobj has MF_MISSILE, this is the actual fire from it.
-	MF2_SHADOW         = 1<<20, // Fuzzy draw, makes targeting harder.
-	MF2_STRONGBOX      = 1<<21, // Flag used for "strong" random monitors.
-	MF2_OBJECTFLIP     = 1<<22, // Flag for objects that always have flipped gravity.
-	MF2_SKULLFLY       = 1<<23, // Special handling: skull in flight.
-	MF2_FRET           = 1<<24, // Flashing from a previous hit
-	MF2_BOSSNOTRAP     = 1<<25, // No Egg Trap after boss
-	MF2_BOSSFLEE       = 1<<26, // Boss is fleeing!
-	MF2_BOSSDEAD       = 1<<27, // Boss is dead! (Not necessarily fleeing, if a fleeing point doesn't exist.)
+	MF2_SLIDEPUSH      = 1<<10, // MF_PUSHABLE that pushes continuously.
+	MF2_CLASSICPUSH    = 1<<11, // Drops straight down when object has negative Z.
+	MF2_STANDONME      = 1<<12, // While not pushable, stand on me anyway.
+	MF2_INFLOAT        = 1<<13, // Floating to a height for a move, don't auto float to target's height.
+	MF2_DEBRIS         = 1<<14, // Splash ring from explosion ring
+	MF2_NIGHTSPULL     = 1<<15, // Attracted from a paraloop
+	MF2_JUSTATTACKED   = 1<<16, // can be pushed by other moving mobjs
+	MF2_FIRING         = 1<<17, // turret fire
+	MF2_SUPERFIRE      = 1<<18, // Firing something with Super Sonic-stopping properties. Or, if mobj has MF_MISSILE, this is the actual fire from it.
+	MF2_SHADOW         = 1<<19, // Fuzzy draw, makes targeting harder.
+	MF2_STRONGBOX      = 1<<20, // Flag used for "strong" random monitors.
+	MF2_OBJECTFLIP     = 1<<21, // Flag for objects that always have flipped gravity.
+	MF2_SKULLFLY       = 1<<22, // Special handling: skull in flight.
+	MF2_FRET           = 1<<23, // Flashing from a previous hit
+	MF2_BOSSNOTRAP     = 1<<24, // No Egg Trap after boss
+	MF2_BOSSFLEE       = 1<<25, // Boss is fleeing!
+	MF2_BOSSDEAD       = 1<<26, // Boss is dead! (Not necessarily fleeing, if a fleeing point doesn't exist.)
 	// free: to and including 1<<31
 } mobjflag2_t;
 
@@ -232,7 +231,8 @@ typedef enum
 	MFE_VERTICALFLIP      = 1<<5,
 	// Goo water
 	MFE_GOOWATER          = 1<<6,
-	// free: to and including 1<<7
+	// Mobj was already pushed this tic
+	MFE_PUSHED            = 1<<7,
 } mobjeflag_t;
 
 //
diff --git a/src/p_spec.c b/src/p_spec.c
index 616ab356599ba55a3efaf900a33924a9a8de5f20..6806062823579a1aa8e852dde712f1e96a5dd684 100644
--- a/src/p_spec.c
+++ b/src/p_spec.c
@@ -6527,7 +6527,7 @@ static void P_DoScrollMove(mobj_t *thing, fixed_t dx, fixed_t dy, INT32 exclusiv
 	thing->momy += dy;
 
 	if (exclusive)
-		thing->flags2 |= MF2_PUSHED;
+		thing->eflags |= MFE_PUSHED;
 }
 
 /** Processes an active scroller.
@@ -6631,7 +6631,7 @@ void T_Scroll(scroll_t *s)
 					{
 						thing = node->m_thing;
 
-						if (thing->flags2 & MF2_PUSHED) // Already pushed this tic by an exclusive pusher.
+						if (thing->eflags & MFE_PUSHED) // Already pushed this tic by an exclusive pusher.
 							continue;
 
 						if (!(thing->flags & MF_NOCLIP)) // Thing must be clipped
@@ -6651,7 +6651,7 @@ void T_Scroll(scroll_t *s)
 				{
 					thing = node->m_thing;
 
-					if (thing->flags2 & MF2_PUSHED)
+					if (thing->eflags & MFE_PUSHED)
 						continue;
 
 					if (!(thing->flags & MF_NOCLIP) &&
@@ -6690,7 +6690,7 @@ void T_Scroll(scroll_t *s)
 					{
 						thing = node->m_thing;
 
-						if (thing->flags2 & MF2_PUSHED)
+						if (thing->eflags & MFE_PUSHED)
 							continue;
 
 						if (!(thing->flags & MF_NOCLIP)) // Thing must be clipped
@@ -6710,7 +6710,7 @@ void T_Scroll(scroll_t *s)
 				{
 					thing = node->m_thing;
 
-					if (thing->flags2 & MF2_PUSHED)
+					if (thing->eflags & MFE_PUSHED)
 						continue;
 
 					if (!(thing->flags & MF_NOCLIP) &&
@@ -7193,7 +7193,7 @@ static pusher_t *tmpusher; // pusher structure for blockmap searches
   */
 static inline boolean PIT_PushThing(mobj_t *thing)
 {
-	if (thing->flags2 & MF2_PUSHED)
+	if (thing->eflags & MFE_PUSHED)
 		return false;
 
 	if (thing->player && thing->player->pflags & PF_ROPEHANG)
@@ -7323,7 +7323,7 @@ static inline boolean PIT_PushThing(mobj_t *thing)
 	}
 
 	if (tmpusher->exclusive)
-		thing->flags2 |= MF2_PUSHED;
+		thing->eflags |= MFE_PUSHED;
 
 	return true;
 }
@@ -7430,7 +7430,7 @@ void T_Pusher(pusher_t *p)
 			|| thing->type == MT_BIGTUMBLEWEED))
 			continue;
 
-		if (thing->flags2 & MF2_PUSHED)
+		if (thing->eflags & MFE_PUSHED)
 			continue;
 
 		if (thing->player && thing->player->pflags & PF_ROPEHANG)
@@ -7600,7 +7600,7 @@ void T_Pusher(pusher_t *p)
 			}
 
 			if (p->exclusive)
-				thing->flags2 |= MF2_PUSHED;
+				thing->eflags |= MFE_PUSHED;
 		}
 	}
 }