diff --git a/VectoCore/Models/SimulationComponent/Data/Gearbox/TransmissionLossMap.cs b/VectoCore/Models/SimulationComponent/Data/Gearbox/TransmissionLossMap.cs
index bf5d161ea4c5fb284028a20291b0ad061292292b..485275c55719ecdf940a1f6f4e82b25c40767147 100644
--- a/VectoCore/Models/SimulationComponent/Data/Gearbox/TransmissionLossMap.cs
+++ b/VectoCore/Models/SimulationComponent/Data/Gearbox/TransmissionLossMap.cs
@@ -113,18 +113,17 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox
 		public NewtonMeter GearboxInTorque(PerSecond inAngularVelocity, NewtonMeter outTorque)
 		{
 			try {
-				var limitedAngularVelocity = VectoMath.Limit(inAngularVelocity, _minSpeed, _maxSpeed).Value();
-				var limitedTorque = VectoMath.Limit(outTorque, _minTorque, _maxTorque).Value();
+				//var limitedAngularVelocity = VectoMath.Limit(inAngularVelocity, _minSpeed, _maxSpeed).Value();
+				//var limitedTorque = VectoMath.Limit(outTorque, _minTorque, _maxTorque).Value();
 
-				var inTorque = _lossMap.Interpolate(limitedAngularVelocity, limitedTorque).SI<NewtonMeter>();
-				Logger<TransmissionLossMap>().Debug("GearboxLoss: {0}", inTorque - outTorque);
+				var inTorque = _lossMap.Interpolate(inAngularVelocity.Value(), outTorque.Value()).SI<NewtonMeter>();
+				Log.Debug("GearboxLoss: {0}", inTorque - outTorque);
 
 				// Limit input torque to a maximum value without losses (just torque/ratio)
 				return VectoMath.Max(inTorque, outTorque / _ratio);
 			} catch (VectoException) {
-				Logger<TransmissionLossMap>()
-					.Error("Failed to interpolate in TransmissionLossMap. angularVelocity: {0}, torque: {1}", inAngularVelocity,
-						outTorque);
+				Log.Error("Failed to interpolate in TransmissionLossMap. angularVelocity: {0}, torque: {1}", inAngularVelocity,
+					outTorque);
 				return outTorque / _ratio;
 			}
 		}
diff --git a/VectoCore/Models/SimulationComponent/Impl/Gearbox.cs b/VectoCore/Models/SimulationComponent/Impl/Gearbox.cs
index f5bc39507a083b24f868d8ae664284e4d88084d4..36330009a794f80bba8673f91ddfdf72df3985c8 100644
--- a/VectoCore/Models/SimulationComponent/Impl/Gearbox.cs
+++ b/VectoCore/Models/SimulationComponent/Impl/Gearbox.cs
@@ -229,25 +229,22 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 				Log.Debug("Gearbox engaged gear {0}", Gear);
 			}
 
-			PerSecond inEngineSpeed;
+			var inEngineSpeed = outEngineSpeed * Data.Gears[Gear].Ratio;
 			NewtonMeter inTorque;
 
 			if (outEngineSpeed.IsEqual(0)) {
-				inEngineSpeed = outEngineSpeed;
-				inTorque = outTorque;
+				inTorque = outTorque / Data.Gears[Gear].Ratio;
 			} else {
-				inEngineSpeed = outEngineSpeed * Data.Gears[Gear].Ratio;
 				inTorque = Data.Gears[Gear].LossMap.GearboxInTorque(inEngineSpeed, outTorque);
-
-				_powerLoss = inTorque * inEngineSpeed - outTorque * outEngineSpeed;
-				var torqueLossInertia = !inEngineSpeed.IsEqual(0)
-					? Formulas.InertiaPower(inEngineSpeed, _previousInEnginespeed, Data.Inertia, dt) / inEngineSpeed
-					: 0.SI<NewtonMeter>();
-
-				_previousInEnginespeed = inEngineSpeed;
-				inTorque += torqueLossInertia;
-				_powerLossInertia = torqueLossInertia * inEngineSpeed;
 			}
+			_powerLoss = inTorque * inEngineSpeed - outTorque * outEngineSpeed;
+			var torqueLossInertia = !inEngineSpeed.IsEqual(0)
+				? Formulas.InertiaPower(inEngineSpeed, _previousInEnginespeed, Data.Inertia, dt) / inEngineSpeed
+				: 0.SI<NewtonMeter>();
+
+			_previousInEnginespeed = inEngineSpeed;
+			inTorque += torqueLossInertia;
+			_powerLossInertia = torqueLossInertia * inEngineSpeed;
 
 			if (dryRun) {
 				var dryRunResponse = NextComponent.Request(absTime, dt, inTorque, inEngineSpeed, true);
diff --git a/VectoCoreTest/Models/SimulationComponent/GearboxTest.cs b/VectoCoreTest/Models/SimulationComponent/GearboxTest.cs
index 425a5e65f3445efd74f265ca095a7b00075c86a2..8eda6598709f67801ee0453d402b086ff4daafb9 100644
--- a/VectoCoreTest/Models/SimulationComponent/GearboxTest.cs
+++ b/VectoCoreTest/Models/SimulationComponent/GearboxTest.cs
@@ -198,26 +198,24 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 			// the first element 0.0 is just a placeholder for axlegear, not used in this test
 
 			var expected = new[] {
-				new { gear = 1, t = -1000, n = 800, loss = 29.108, responseType = typeof(ResponseSuccess) },
-				new { gear = 2, t = -1000, n = 800, loss = 29.108, responseType = typeof(ResponseSuccess) },
-				new { gear = 7, t = -1000, n = 1200, loss = 16.132, responseType = typeof(ResponseSuccess) },
-				new { gear = 7, t = 850, n = 1200, loss = 15.382, responseType = typeof(ResponseSuccess) },
-				new { gear = 7, t = 2450, n = 1200, loss = 23.382, responseType = typeof(ResponseSuccess) },
-				new { gear = 1, t = 50, n = 800, loss = 10.108, responseType = typeof(ResponseSuccess) },
+				new { gear = 1, t = -1000, n = 600, loss = 28.096, responseType = typeof(ResponseSuccess) },
+				new { gear = 2, t = -1000, n = 600, loss = 28.096, responseType = typeof(ResponseSuccess) },
+				new { gear = 7, t = -1000, n = 600, loss = 13.096, responseType = typeof(ResponseSuccess) },
+				new { gear = 7, t = 850, n = 600, loss = 12.346, responseType = typeof(ResponseSuccess) },
+				new { gear = 7, t = 2050, n = 1200, loss = 21.382, responseType = typeof(ResponseSuccess) },
+				new { gear = 1, t = 50, n = 600, loss = 9.096, responseType = typeof(ResponseSuccess) },
 				new { gear = 1, t = 2450, n = 800, loss = 58.11, responseType = typeof(ResponseSuccess) },
 				new { gear = 1, t = 850, n = 800, loss = 26.11, responseType = typeof(ResponseSuccess) },
-				new { gear = 1, t = 850, n = 0, loss = 22.06, responseType = typeof(ResponseSuccess) },
+				new { gear = 1, t = 850, n = 0, loss = 0.0, responseType = typeof(ResponseSuccess) },
 				new { gear = 1, t = 850, n = 200, loss = 23.07, responseType = typeof(ResponseSuccess) },
-				new { gear = 2, t = 50, n = 800, loss = 10.108, responseType = typeof(ResponseSuccess) },
-				new { gear = 2, t = 2450, n = 800, loss = 58.11, responseType = typeof(ResponseGearShift) },
+				new { gear = 2, t = 50, n = 600, loss = 9.096, responseType = typeof(ResponseSuccess) },
+				new { gear = 2, t = 2050, n = 1200, loss = 52.132, responseType = typeof(ResponseSuccess) },
 				new { gear = 2, t = 850, n = 800, loss = 26.11, responseType = typeof(ResponseSuccess) },
-				new { gear = 2, t = 850, n = 0, loss = 22.06, responseType = typeof(ResponseGearShift) },
-				new { gear = 2, t = 850, n = 400, loss = 11.334, responseType = typeof(ResponseGearShift) },
-				new { gear = 2, t = 850, n = 2000, loss = 32.18, responseType = typeof(ResponseGearShift) },
-				new { gear = 7, t = -1000, n = 0, loss = 10.06, responseType = typeof(ResponseGearShift) },
-				new { gear = 7, t = 850, n = 0, loss = 9.31, responseType = typeof(ResponseGearShift) },
-				new { gear = 7, t = 850, n = 2000, loss = 19.43, responseType = typeof(ResponseGearShift) },
-				new { gear = 7, t = 2450, n = 0, loss = 17.31, responseType = typeof(ResponseGearShift) },
+				new { gear = 2, t = 850, n = 0, loss = 0.0, responseType = typeof(ResponseSuccess) },
+				new { gear = 2, t = 850, n = 600, loss = 25.096, responseType = typeof(ResponseSuccess) },
+				new { gear = 7, t = -1000, n = 0, loss = 0.0, responseType = typeof(ResponseSuccess) },
+				new { gear = 7, t = 850, n = 0, loss = 0.0, responseType = typeof(ResponseSuccess) },
+				new { gear = 7, t = 2450, n = 0, loss = 0.0, responseType = typeof(ResponseSuccess) },
 			};
 
 			var absTime = 0.SI<Second>();
diff --git a/VectoCoreTest/Utils/MockPorts.cs b/VectoCoreTest/Utils/MockPorts.cs
index 769dc3d286afc443bce80a473f8b617993cb76d7..94eccca59ea5675b0614027b6e7928f9864ec470 100644
--- a/VectoCoreTest/Utils/MockPorts.cs
+++ b/VectoCoreTest/Utils/MockPorts.cs
@@ -29,8 +29,8 @@ namespace TUGraz.VectoCore.Tests.Utils
 					Source = this,
 					GearboxPowerRequest = torque * angularVelocity,
 					EnginePowerRequest = torque * angularVelocity,
-					DeltaFullLoad = -100000.SI<Watt>(),
-					DeltaDragLoad = -500.SI<Watt>()
+					DeltaFullLoad = (torque - 2300.SI<NewtonMeter>()) * angularVelocity,
+					DeltaDragLoad = (torque - -100.SI<NewtonMeter>()) * angularVelocity
 				};
 			}