diff --git a/osu.Game/Rulesets/Mods/Mod.cs b/osu.Game/Rulesets/Mods/Mod.cs
index 487cdedd13..d2747d98c7 100644
--- a/osu.Game/Rulesets/Mods/Mod.cs
+++ b/osu.Game/Rulesets/Mods/Mod.cs
@@ -150,7 +150,17 @@ namespace osu.Game.Rulesets.Mods
///
/// The target bindable to apply the adjustment.
/// The adjustment to apply.
- internal virtual void CopyAdjustedSetting(IBindable bindable, object value) => bindable.Parse(value);
+ internal virtual void CopyAdjustedSetting(IBindable bindable, object value)
+ {
+ if (value is IBindable incoming)
+ {
+ //copy including transfer of default values.
+ bindable.BindTo(incoming);
+ bindable.UnbindFrom(incoming);
+ }
+ else
+ bindable.Parse(value);
+ }
public bool Equals(IMod other) => GetType() == other?.GetType();
}