diff --git a/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs b/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs
index 1e0bc504df8c254d9228def3bc62257e76faa079..06149ca14279a1d0d844d5f22f82d63fac1ed765 100644
--- a/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs
+++ b/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs
@@ -85,12 +85,12 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 
 			switch (data.Retarder.Type) {
 				case RetarderData.RetarderType.Primary:
-					tmp = AddComponent(tmp, new Retarder(container, data.Retarder.LossMap));
+					tmp = AddComponent(tmp, new Retarder(container, data.Retarder.LossMap, data.Retarder.Ratio));
 					tmp = AddComponent(tmp, gearbox);
 					break;
 				case RetarderData.RetarderType.Secondary:
 					tmp = AddComponent(tmp, gearbox);
-					tmp = AddComponent(tmp, new Retarder(container, data.Retarder.LossMap));
+					tmp = AddComponent(tmp, new Retarder(container, data.Retarder.LossMap, data.Retarder.Ratio));
 					break;
 				case RetarderData.RetarderType.None:
 					tmp = AddComponent(tmp, new DummyRetarder(container));
@@ -158,12 +158,12 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 
 			switch (data.Retarder.Type) {
 				case RetarderData.RetarderType.Primary:
-					tmp = AddComponent(tmp, new Retarder(container, data.Retarder.LossMap));
+					tmp = AddComponent(tmp, new Retarder(container, data.Retarder.LossMap, data.Retarder.Ratio));
 					tmp = AddComponent(tmp, gearbox);
 					break;
 				case RetarderData.RetarderType.Secondary:
 					tmp = AddComponent(tmp, gearbox);
-					tmp = AddComponent(tmp, new Retarder(container, data.Retarder.LossMap));
+					tmp = AddComponent(tmp, new Retarder(container, data.Retarder.LossMap, data.Retarder.Ratio));
 					break;
 				case RetarderData.RetarderType.None:
 					tmp = AddComponent(tmp, gearbox);
@@ -236,12 +236,12 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 
 			switch (data.Retarder.Type) {
 				case RetarderData.RetarderType.Primary:
-					tmp = AddComponent(tmp, new Retarder(container, data.Retarder.LossMap));
+					tmp = AddComponent(tmp, new Retarder(container, data.Retarder.LossMap, data.Retarder.Ratio));
 					tmp = AddComponent(tmp, GetGearbox(container, data.GearboxData));
 					break;
 				case RetarderData.RetarderType.Secondary:
 					tmp = AddComponent(tmp, GetGearbox(container, data.GearboxData));
-					tmp = AddComponent(tmp, new Retarder(container, data.Retarder.LossMap));
+					tmp = AddComponent(tmp, new Retarder(container, data.Retarder.LossMap, data.Retarder.Ratio));
 					break;
 				case RetarderData.RetarderType.None:
 					tmp = AddComponent(tmp, GetGearbox(container, data.GearboxData));
diff --git a/VectoCore/Models/SimulationComponent/Impl/Retarder.cs b/VectoCore/Models/SimulationComponent/Impl/Retarder.cs
index d9ebabdf24ae63f841fd6cf77da12a62ab2c9274..0011c9463dacd4b78be377e4671bcbf53b45f264 100644
--- a/VectoCore/Models/SimulationComponent/Impl/Retarder.cs
+++ b/VectoCore/Models/SimulationComponent/Impl/Retarder.cs
@@ -20,6 +20,7 @@ using System;
 using TUGraz.VectoCore.Models.Connector.Ports;
 using TUGraz.VectoCore.Models.Simulation;
 using TUGraz.VectoCore.Models.Simulation.Data;
+using TUGraz.VectoCore.Models.Simulation.Impl;
 using TUGraz.VectoCore.Models.SimulationComponent.Data;
 using TUGraz.VectoCore.OutputData;
 using TUGraz.VectoCore.Utils;
@@ -32,10 +33,12 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 		protected ITnOutPort NextComponent;
 
 		private readonly RetarderLossMap _lossMap;
+		private double _ratio;
 
-		public Retarder(IVehicleContainer cockpit, RetarderLossMap lossMap) : base(cockpit)
+		public Retarder(IVehicleContainer cockpit, RetarderLossMap lossMap, double ratio) : base(cockpit)
 		{
 			_lossMap = lossMap;
+			_ratio = ratio;
 		}
 
 		protected override void DoWriteModalResults(IModalDataContainer container)
@@ -68,7 +71,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 				return NextComponent.Request(absTime, dt, torque, null, dryRun);
 			}
 			var avgAngularSpeed = (PreviousState.InAngularVelocity + angularVelocity) / 2.0;
-			var retarderTorqueLoss = _lossMap.RetarderLoss(avgAngularSpeed);
+			var retarderTorqueLoss =
+				_lossMap.RetarderLoss(avgAngularSpeed * _ratio, DataBus.ExecutionMode != ExecutionMode.Declaration) / _ratio;
 			CurrentState.SetState(torque + retarderTorqueLoss, angularVelocity, torque, angularVelocity);
 
 			return NextComponent.Request(absTime, dt, torque + retarderTorqueLoss, angularVelocity, dryRun);
@@ -76,7 +80,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 
 		public IResponse Initialize(NewtonMeter torque, PerSecond angularVelocity)
 		{
-			var retarderTorqueLoss = _lossMap.RetarderLoss(angularVelocity);
+			var retarderTorqueLoss =
+				_lossMap.RetarderLoss(angularVelocity * _ratio, DataBus.ExecutionMode != ExecutionMode.Declaration) / _ratio;
 			PreviousState.SetState(torque + retarderTorqueLoss, angularVelocity, torque, angularVelocity);
 
 			return NextComponent.Initialize(torque + retarderTorqueLoss, angularVelocity);
diff --git a/VectoCoreTest/Models/SimulationComponent/RetarderTest.cs b/VectoCoreTest/Models/SimulationComponent/RetarderTest.cs
index 9b5bceeb239b3ca6f9776ef6d5390c61de42422c..fa3ca751c8323ec639b4baae4f9661d8a3fee4b3 100644
--- a/VectoCoreTest/Models/SimulationComponent/RetarderTest.cs
+++ b/VectoCoreTest/Models/SimulationComponent/RetarderTest.cs
@@ -37,7 +37,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 		{
 			var vehicle = new VehicleContainer();
 			var retarderData = RetarderLossMap.ReadFromFile(RetarderLossMapFile);
-			var retarder = new Retarder(vehicle, retarderData);
+			var retarder = new Retarder(vehicle, retarderData, 1.0);
 
 			var nextRequest = new MockTnOutPort();