diff --git a/Source/Orts.Simulation/Simulation/RollingStocks/SubSystems/CruiseControl.cs b/Source/Orts.Simulation/Simulation/RollingStocks/SubSystems/CruiseControl.cs index 99d97a86f9..64cfe0ec01 100644 --- a/Source/Orts.Simulation/Simulation/RollingStocks/SubSystems/CruiseControl.cs +++ b/Source/Orts.Simulation/Simulation/RollingStocks/SubSystems/CruiseControl.cs @@ -1351,7 +1351,8 @@ void SetTrainBrake(ref float brakePercent, float elapsedClockSeconds, float delt { if (deltaSpeedMpS > -SpeedDeltaToEnableFullTrainBrake) { - if (!Locomotive.DynamicBrakeAvailable || deltaSpeedMpS < -SpeedDeltaToEnableTrainBrake) + bool dynamicBrakeAvailable = Locomotive.DynamicBrakeAvailable && Locomotive.LocomotivePowerSupply.DynamicBrakeAvailable && Locomotive.AbsSpeedMpS > Locomotive.DynamicBrakeSpeed1MpS; + if (!dynamicBrakeAvailable || deltaSpeedMpS < -SpeedDeltaToEnableTrainBrake) { CCIsUsingTrainBrake = true; brakePercent = TrainBrakeMinPercentValue - 3.0f + (-deltaSpeedMpS * 10)/SpeedDeltaToEnableTrainBrake;