diff --git a/src/p_map.c b/src/p_map.c
index 39f7d1c5413323cdb853861af3f00a4a72e6528a..13a49acd4aec0e52a765b3ca6abc41c67457fd67 100644
--- a/src/p_map.c
+++ b/src/p_map.c
@@ -492,7 +492,7 @@ static void P_DoFanAndGasJet(mobj_t *spring, mobj_t *object)
 
 static void P_DoPterabyteCarry(player_t *player, mobj_t *ptera)
 {
-	if (player->powers[pw_carry])
+	if (player->powers[pw_carry] && players->powers[pw_carry] != CR_ROLLOUT)
 		return;
 	if (ptera->extravalue1 != 1)
 		return; // Not swooping