diff --git a/osu.Game/Screens/Edit/Timing/MetronomeDisplay.cs b/osu.Game/Screens/Edit/Timing/MetronomeDisplay.cs
index 44553a92d4..553eacab46 100644
--- a/osu.Game/Screens/Edit/Timing/MetronomeDisplay.cs
+++ b/osu.Game/Screens/Edit/Timing/MetronomeDisplay.cs
@@ -42,6 +42,9 @@ namespace osu.Game.Screens.Edit.Timing
         [Resolved]
         private OverlayColourProvider overlayColourProvider { get; set; } = null!;
 
+        [Resolved]
+        private BindableBeatDivisor beatDivisor { get; set; } = null!;
+
         public bool EnableClicking
         {
             get => metronomeTick.EnableClicking;
@@ -233,10 +236,17 @@ namespace osu.Game.Screens.Edit.Timing
 
         private ScheduledDelegate? latchDelegate;
 
+        private bool spedUp;
+
         private bool divisorChanged;
 
-        private void setDivisor(int divisor)
+        private void updateDivisor()
         {
+            int divisor = 1;
+
+            if (spedUp)
+                divisor = beatDivisor.Value % 3 == 0 ? 3 : 2;
+
             if (divisor == Divisor)
                 return;
 
@@ -264,6 +274,8 @@ namespace osu.Game.Screens.Edit.Timing
 
             timingPoint = BeatSyncSource.ControlPoints.TimingPointAt(BeatSyncSource.Clock.CurrentTime);
 
+            updateDivisor();
+
             if (beatLength != timingPoint.BeatLength || divisorChanged)
             {
                 beatLength = timingPoint.BeatLength;
@@ -346,7 +358,7 @@ namespace osu.Game.Screens.Edit.Timing
             updateDivisorFromKey(e);
         }
 
-        private void updateDivisorFromKey(UIEvent e) => setDivisor(e.ControlPressed ? 2 : 1);
+        private void updateDivisorFromKey(UIEvent e) => spedUp = e.ControlPressed;
 
         private partial class MetronomeTick : BeatSyncedContainer
         {