diff --git a/src/p_mobj.c b/src/p_mobj.c
index 1d3fe8b46a72c7f7fd915e2d2c96c97b04b44dc6..301f3a8d6a224e2f172e9a514cdedf030bb3bb07 100644
--- a/src/p_mobj.c
+++ b/src/p_mobj.c
@@ -1741,13 +1741,14 @@ static void P_PushableCheckBustables(mobj_t *mo)
 			if (rover->master->flags & ML_EFFECT5)
 				P_LinedefExecute((INT16)(P_AproxDistance(rover->master->dx, rover->master->dy)>>FRACBITS), mo, node->m_sector);
 
-			P_UnsetThingPosition(mo);
-			mo->x = oldx;
-			mo->y = oldy;
-			P_SetThingPosition(mo);
-			return;
+			goto bustupdone;
 		}
 	}
+bustupdone:
+	P_UnsetThingPosition(mo);
+	mo->x = oldx;
+	mo->y = oldy;
+	P_SetThingPosition(mo);
 }
 
 //