diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Strategies/GensetPreprocessor.cs b/VectoCore/VectoCore/Models/SimulationComponent/Strategies/GensetPreprocessor.cs
index 482ca5efcb65763c62576d0c9e7db9a9e29fe037..cf76189e231dbae76c1e0ad74ab625824f0f631b 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Strategies/GensetPreprocessor.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Strategies/GensetPreprocessor.cs
@@ -1,6 +1,8 @@
 using System;
 using System.Collections.Generic;
+using System.ComponentModel;
 using System.Linq;
+using TUGraz.VectoCommon.Exceptions;
 using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCommon.Utils;
 using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter;
@@ -21,14 +23,16 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Strategies
 		private CombustionEngineData IceData;
 		private ElectricMotorData EmData;
 		protected GenSetCharacteristics OptimalPoints;
+		private readonly IVehicleContainer _container;
 
 		public GensetPreprocessor(GenSetCharacteristics optimalPoints, TestGenset testGenSet, CombustionEngineData engineData,
-			ElectricMotorData electricMotorData)
+			ElectricMotorData electricMotorData, IVehicleContainer container)
 		{
 			Genset = testGenSet;
 			IceData = engineData;
 			EmData = electricMotorData;
 			OptimalPoints = optimalPoints;
+			_container = container;
 		}
 
 		#region Implementation of ISimulationPreprocessor
@@ -49,8 +53,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Strategies
 		private void MaxElectricPower(Volt voltage, bool emDerated)
 		{
 			var continuousTq = emDerated ? EmData.Overload.ContinuousTorque : double.MaxValue.SI<NewtonMeter>();
-			var maxSpeed = VectoMath.Min(EmData.EfficiencyData.MaxSpeed,
-				IceData.FullLoadCurves[0].FullLoadEntries.Select(x => x.EngineSpeed).Max());
+			var maxSpeedIce = IceData.FullLoadCurves[0].FullLoadEntries.Select(x => x.EngineSpeed).Max();
+			var maxSpeed = VectoMath.Min(EmData.EfficiencyData.MaxSpeed, maxSpeedIce);
 			var emFldDrivetrain = new ElectricMotorFullLoadCurve(EmData.EfficiencyData.VoltageLevels[0].FullLoadCurve
 				.FullLoadEntries.Select(x =>
 					new ElectricMotorFullLoadCurve.FullLoadEntry() {
@@ -69,20 +73,24 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Strategies
 					MotorSpeed = maxSpeed
 				});
 			}
+
+			///TODO consider torque demand of engine auxiliaries here
 			var iceFld = new ElectricMotorFullLoadCurve(IceData.FullLoadCurves[0].FullLoadEntries.Select(x =>
 				new ElectricMotorFullLoadCurve.FullLoadEntry() {
-					FullDriveTorque = -x.TorqueFullLoad,
+					FullDriveTorque = -x.TorqueFullLoad + _container.EngineInfo.EngineAuxDemand(x.EngineSpeed,0.SI<Second>()) / x.EngineSpeed,
 					FullGenerationTorque = 0.SI<NewtonMeter>(),
 					MotorSpeed = x.EngineSpeed
 				}).Where(x => x.MotorSpeed.IsSmallerOrEqual(maxSpeed)).ToList());
 			if (!iceFld.FullLoadEntries.Any(x => x.MotorSpeed.IsEqual(maxSpeed))) {
 				iceFld.FullLoadEntries.Add(new ElectricMotorFullLoadCurve.FullLoadEntry() {
-					FullDriveTorque = -IceData.FullLoadCurves[0].FullLoadStationaryTorque(maxSpeed),
+					FullDriveTorque = -IceData.FullLoadCurves[0].FullLoadStationaryTorque(maxSpeed) + _container.EngineInfo.EngineAuxDemand(maxSpeed, 0.SI<Second>()) / maxSpeed,
 					FullGenerationTorque = 0.SI<NewtonMeter>(),
 					MotorSpeed = maxSpeed
 				});
 			}
 
+
+
 			var combinedFldEntries = AbstractSimulationDataAdapter.IntersectEMFullLoadCurves(iceFld, emFldDrivetrain).FullLoadEntries.Select(x =>
 				new EngineFullLoadCurve.FullLoadCurveEntry() {
 					EngineSpeed = x.MotorSpeed,
@@ -117,6 +125,16 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Strategies
 				} else {
 					OptimalPoints.MaxPower = tmp;
 				}
+			} else {
+				switch (response)
+				{
+					case ResponseOverload ovld:
+
+					default:
+						throw new VectoException(
+							$"Could not determine max {(emDerated ? "derated" : "")} electric genset power! Invalid response [{response.GetType().Name}] from {response.Source.GetType().Name}");
+						break;
+				}
 			}
 		}
 
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Strategies/SerialHybridStrategy.cs b/VectoCore/VectoCore/Models/SimulationComponent/Strategies/SerialHybridStrategy.cs
index 78f5fa87f671a6be67ae557651f7615a54b8ba52..91e5aa2c49bfca6311f31aaca2afc075533f21fb 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Strategies/SerialHybridStrategy.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Strategies/SerialHybridStrategy.cs
@@ -193,7 +193,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Strategies
 
 
 			container.AddPreprocessor(new GensetPreprocessor(GenSetCharacteristics, TestGenSet, runData.EngineData,
-				runData.ElectricMachinesData.FirstOrDefault(x => x.Item1 == PowertrainPosition.GEN)?.Item2));
+				runData.ElectricMachinesData.FirstOrDefault(x => x.Item1 == PowertrainPosition.GEN)?.Item2, container));
 		}