diff --git a/src/b_bot.c b/src/b_bot.c
index 895c8d18d8ef81222cf8bd7821cdd90c552737d8..b286dfff915c8484a117ea9f553fe4065e814f39 100644
--- a/src/b_bot.c
+++ b/src/b_bot.c
@@ -163,6 +163,12 @@ static inline void B_BuildTailsTiccmd(mobj_t *sonic, mobj_t *tails, ticcmd_t *cm
 		else
 			thinkfly = false;
 
+		// Set carried state
+		if (player->powers[pw_carry] == CR_PLAYER && sonic->tracer == tails)
+		{
+			flymode = 2;
+		}
+
 		// Ready for takeoff
 		if (flymode == 1)
 		{
@@ -175,12 +181,6 @@ static inline void B_BuildTailsTiccmd(mobj_t *sonic, mobj_t *tails, ticcmd_t *cm
 			// Abort if the player moves away or spins
 			if (dist > followthres || player->dashspeed)
 				flymode = 0;
-			
-			// Set carried state
-			if (player->powers[pw_carry] == CR_PLAYER && sonic->tracer == tails)
-			{
-				flymode = 2;
-			}
 		}
 		// Read player inputs while carrying
 		else if (flymode == 2)