diff --git a/src/main/java/chylex/bettercontrols/mixin/AccessPlayerFields.java b/src/main/java/chylex/bettercontrols/mixin/AccessPlayerFields.java
index 10baf34..8fd0ab1 100644
--- a/src/main/java/chylex/bettercontrols/mixin/AccessPlayerFields.java
+++ b/src/main/java/chylex/bettercontrols/mixin/AccessPlayerFields.java
@@ -5,6 +5,6 @@ import org.spongepowered.asm.mixin.gen.Accessor;
 
 @Mixin(PlayerEntity.class)
 public interface AccessPlayerFields{
-	@Accessor("abilityResyncCountdown")
+	@Accessor("flyToggleTimer")
 	void setTicksLeftToDoubleTapFlight(int value);
 }
diff --git a/src/main/java/chylex/bettercontrols/player/PlayerTicker.java b/src/main/java/chylex/bettercontrols/player/PlayerTicker.java
index 2c6a55e..2c8f7cd 100644
--- a/src/main/java/chylex/bettercontrols/player/PlayerTicker.java
+++ b/src/main/java/chylex/bettercontrols/player/PlayerTicker.java
@@ -180,16 +180,6 @@ public final class PlayerTicker{
 					player.setMotion(player.getMotion().add(0D, flightSpeed * verticalVelocity * direction, 0D));
 				}
 			}
-			
-			if (cfg().disableFlightInertia){
-				if (input.moveForward == 0F && input.moveStrafe == 0F){
-					player.setMotion(player.getMotion().mul(0.0, 1.0, 0.0));
-				}
-				
-				if (!input.jump && !input.sneaking){
-					player.setMotion(player.getMotion().mul(1.0, 0.0, 1.0));
-				}
-			}
 		}
 		
 		if (cfg().resumeSprintingAfterHittingObstacle){
@@ -255,6 +245,18 @@ public final class PlayerTicker{
 			holdingSneakWhileTouchingGround = false;
 		}
 		
+		if (FlightHelper.isFlyingCreativeOrSpectator(player) && cfg().disableFlightInertia){
+			final MovementInput input = player.movementInput;
+			
+			if (input.moveForward == 0F && input.moveStrafe == 0F){
+				player.setMotion(player.getMotion().mul(0.0, 1.0, 0.0));
+			}
+			
+			if (!input.jump && !input.sneaking){
+				player.setMotion(player.getMotion().mul(1.0, 0.0, 1.0));
+			}
+		}
+		
 		if (player.isCreative()){
 			if (Key.wasPressed(cfg().keyToggleFlight)){
 				final boolean isFlying = !player.abilities.isFlying;