diff --git a/src/main/java/chylex/bettercontrols/player/PlayerTicker.java b/src/main/java/chylex/bettercontrols/player/PlayerTicker.java
index 468ef4d..5d983b8 100644
--- a/src/main/java/chylex/bettercontrols/player/PlayerTicker.java
+++ b/src/main/java/chylex/bettercontrols/player/PlayerTicker.java
@@ -181,16 +181,6 @@ public final class PlayerTicker{
 					player.setVelocity(player.getVelocity().add(0D, flightSpeed * verticalVelocity * direction, 0D));
 				}
 			}
-			
-			if (cfg().disableFlightInertia){
-				if (input.movementForward == 0F && input.movementSideways == 0F){
-					player.setVelocity(player.getVelocity().multiply(0.0, 1.0, 0.0));
-				}
-				
-				if (!input.jumping && !input.sneaking){
-					player.setVelocity(player.getVelocity().multiply(1.0, 0.0, 1.0));
-				}
-			}
 		}
 		
 		if (cfg().resumeSprintingAfterHittingObstacle){
@@ -256,6 +246,18 @@ public final class PlayerTicker{
 			holdingSneakWhileTouchingGround = false;
 		}
 		
+		if (FlightHelper.isFlyingCreativeOrSpectator(player) && cfg().disableFlightInertia){
+			final Input input = player.input;
+			
+			if (input.movementForward == 0F && input.movementSideways == 0F){
+				player.setVelocity(player.getVelocity().multiply(0.0, 1.0, 0.0));
+			}
+			
+			if (!input.jumping && !input.sneaking){
+				player.setVelocity(player.getVelocity().multiply(1.0, 0.0, 1.0));
+			}
+		}
+		
 		if (player.isCreative()){
 			if (Key.wasPressed(cfg().keyToggleFlight)){
 				final boolean isFlying = !player.abilities.flying;