diff --git a/src/k_kart.c b/src/k_kart.c
index a811cce449d069f29e35f363f53a1135f12a56a0..eb6f812e5dcf47895be3a7e9970410afc600e2ee 100644
--- a/src/k_kart.c
+++ b/src/k_kart.c
@@ -4717,7 +4717,7 @@ static void K_KartDrift(player_t *player, boolean onground)
 		}
 
 		// Disable drift-sparks until you're going fast enough
-		if (player->kartstuff[k_getsparks] == 0 || player->kartstuff[k_offroad])
+		if (player->kartstuff[k_getsparks] == 0 || (player->kartstuff[k_offroad] && !player->kartstuff[k_invincibilitytimer] && !player->kartstuff[k_hyudorotimer] && !player->kartstuff[k_sneakertimer]))
 			driftadditive = 0;
 		if (player->speed > minspeed*2)
 			player->kartstuff[k_getsparks] = 1;