diff --git a/osu.Game/Rulesets/UI/RulesetInputManager.cs b/osu.Game/Rulesets/UI/RulesetInputManager.cs
index 2e9986ada6..590a305f77 100644
--- a/osu.Game/Rulesets/UI/RulesetInputManager.cs
+++ b/osu.Game/Rulesets/UI/RulesetInputManager.cs
@@ -191,6 +191,8 @@ namespace osu.Game.Rulesets.UI
 
         public void Attach(KeysPerSecondCalculator calculator)
         {
+            if (calculator == null) return;
+
             var listener = new ActionListener();
 
             KeyBindingContainer.Add(listener);
diff --git a/osu.Game/Screens/Play/HUDOverlay.cs b/osu.Game/Screens/Play/HUDOverlay.cs
index 1cddbcac41..458e19826b 100644
--- a/osu.Game/Screens/Play/HUDOverlay.cs
+++ b/osu.Game/Screens/Play/HUDOverlay.cs
@@ -50,7 +50,8 @@ namespace osu.Game.Screens.Play
         public readonly HoldForMenuButton HoldToQuit;
         public readonly PlayerSettingsOverlay PlayerSettingsOverlay;
 
-        private KeysPerSecondCalculator keysPerSecondCalculator;
+        [Resolved(canBeNull: true)]
+        private KeysPerSecondCalculator keysPerSecondCalculator { get; set; }
 
         public Bindable<bool> ShowHealthBar = new Bindable<bool>(true);
 
@@ -130,10 +131,8 @@ namespace osu.Game.Screens.Play
         }
 
         [BackgroundDependencyLoader(true)]
-        private void load(OsuConfigManager config, INotificationOverlay notificationOverlay, KeysPerSecondCalculator calculator)
+        private void load(OsuConfigManager config, INotificationOverlay notificationOverlay)
         {
-            keysPerSecondCalculator = calculator;
-
             if (drawableRuleset != null)
             {
                 BindDrawableRuleset(drawableRuleset);