diff --git a/Documentation/VehiclesReleaseComparisonDeclarationMode/Class_9_RigidTruck_AT_Decl.xml b/Documentation/VehiclesReleaseComparisonDeclarationMode/Class_9_RigidTruck_AT_Decl.xml
index c4645f198a33cd81d902adfc5fb8059e53e39fc5..fec3f265cc5b4c2a3105e65baf0da562e1dd142a 100644
--- a/Documentation/VehiclesReleaseComparisonDeclarationMode/Class_9_RigidTruck_AT_Decl.xml
+++ b/Documentation/VehiclesReleaseComparisonDeclarationMode/Class_9_RigidTruck_AT_Decl.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <tns:VectoInputDeclaration schemaVersion="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v1.0" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationInput:v1.0 https://webgate.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD/VectoInput.xsd">
-  <Vehicle id="VEH-N.A.">
+  <Vehicle id="VEH-class9_AT">
     <Manufacturer>TUG Generic</Manufacturer>
     <ManufacturerAddress>N.A.</ManufacturerAddress>
     <Model>N.A.</Model>
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATGearbox.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATGearbox.cs
index 7ba29d28ac9aded0a597818704374c9cc8e897b1..51da402b0e0f46d8dcd748eeca99abd4a4d551b3 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATGearbox.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATGearbox.cs
@@ -303,8 +303,10 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 					var avgEngineSpeed = (DataBus.EngineSpeed + outAngularVelocity * effectiveRatio) / 2;
 					powershiftLoss = aliquotEnergyLoss / dt / avgEngineSpeed;
 					inTorque += powershiftLoss;
-					
+
 					//inTorque += CurrentState.PowershiftLossEnergy;
+				} else {
+					_powershiftLossEnergy = null;
 				}
 			}
 
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATShiftStrategy.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATShiftStrategy.cs
index 40e1c4a4340fb87f245341ec4d6c2d5a012052b3..a2a7fae5b8eccb3d14f811a40190f61ae7cd60d7 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATShiftStrategy.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATShiftStrategy.cs
@@ -245,7 +245,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 			var nextGearboxInTorque = outTorque / nextGear.TorqueConverterRatio;
 			var shiftLosses = _gearbox.ComputeShiftLosses(outTorque, outAngularVelocity, gear + 1) / ModelData.PowershiftShiftTime / nextGearboxInSpeed;
 			nextGearboxInTorque += shiftLosses;
-			var tcOperatingPoint = _gearbox.TorqueConverter.FindOperatingPoint(nextGearboxInTorque, nextGearboxInSpeed);
+			var tcOperatingPoint = _gearbox.TorqueConverter.FindOperatingPoint(absTime, dt, nextGearboxInTorque, nextGearboxInSpeed);
 
 			var engineSpeedOverMin = tcOperatingPoint.InAngularVelocity.IsGreater(minEngineSpeed);
 			var avgSpeed = (DataBus.EngineSpeed + tcOperatingPoint.InAngularVelocity) / 2;
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/TorqueConverter.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/TorqueConverter.cs
index e26ffc6ceb3ef9f70d85658acd4b8d8e5394e0a2..cd7d75c756442175bb8abf40c3fc6fada9801e80 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/TorqueConverter.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/TorqueConverter.cs
@@ -102,7 +102,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 			Second absTime, Second dt, NewtonMeter outTorque, PerSecond outAngularVelocity,
 			bool dryRun = false)
 		{
-			var operatingPoint = FindOperatingPoint(outTorque, outAngularVelocity);
+			var operatingPoint = FindOperatingPoint(absTime, dt, outTorque, outAngularVelocity);
 			var inTorque = CalculateAverageInTorque(operatingPoint);
 
 			if (dryRun) {
@@ -209,7 +209,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 					engineResponse.DragPower - engineResponse.AuxiliariesPowerDemand,
 					DataBus.EngineSpeed, outAngularVelocity, _engineInertia, dt, previousPower);
 				var maxInputSpeed = VectoMath.Min(ModelData.TorqueConverterSpeedLimit, DataBus.EngineN95hSpeed);
-				var lowerInputSpeed = VectoMath.Max(DataBus.EngineIdleSpeed, 0.8 * DataBus.EngineSpeed);
+				var lowerInputSpeed = VectoMath.Max(DataBus.EngineIdleSpeed * 1.001, 0.8 * DataBus.EngineSpeed);
 				var corrected = false;
 				if (operatingPoint.InAngularVelocity.IsGreater(maxInputSpeed)) {
 					operatingPoint = ModelData.FindOperatingPoint(maxInputSpeed, outAngularVelocity);
@@ -316,7 +316,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 			return retVal;
 		}
 
-		protected internal TorqueConverterOperatingPoint FindOperatingPoint(
+		protected internal TorqueConverterOperatingPoint FindOperatingPoint(Second absTime, Second dt,
 			NewtonMeter outTorque,
 			PerSecond outAngularVelocity)
 		{
@@ -324,6 +324,15 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 			if (operatingPointList.Count == 0) {
 				Log.Debug("TorqueConverter: Failed to find torque converter operating point, fallback: creeping");
 				var tqOperatingPoint = ModelData.FindOperatingPoint(DataBus.EngineIdleSpeed, outAngularVelocity);
+
+				var engineResponse = (ResponseDryRun)
+					NextComponent.Request(absTime, dt, tqOperatingPoint.InTorque, tqOperatingPoint.InAngularVelocity, true);
+
+				var engineOK = engineResponse.DeltaDragLoad.IsGreaterOrEqual(0) && engineResponse.DeltaFullLoad.IsSmallerOrEqual(0);
+				if (!engineOK) {
+					tqOperatingPoint = ModelData.FindOperatingPoint(VectoMath.Max(DataBus.EngineIdleSpeed, DataBus.EngineSpeed * 0.9), outAngularVelocity);
+				}
+
 				tqOperatingPoint.Creeping = true;
 				return tqOperatingPoint;
 			}
diff --git a/VectoCore/VectoCoreTest/Models/SimulationComponentData/ValidationTest.cs b/VectoCore/VectoCoreTest/Models/SimulationComponentData/ValidationTest.cs
index dbb18171b27fb6533ca32668552bf89d0ef79bbd..6e63b354eb6e48c613d3846eca242551ffc2081a 100644
--- a/VectoCore/VectoCoreTest/Models/SimulationComponentData/ValidationTest.cs
+++ b/VectoCore/VectoCoreTest/Models/SimulationComponentData/ValidationTest.cs
@@ -79,7 +79,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponentData
 			fullLoad.Columns.Add("drag torque");
 			fullLoad.Columns.Add("PT1");
 			fullLoad.Rows.Add("3", "3", "-3", "3");
-			fullLoad.Rows.Add("3", "3", "-3", "3");
+			fullLoad.Rows.Add("4", "3", "-3", "3");
 
 			var data = new CombustionEngineData {
 				ModelName = "asdf",
@@ -116,7 +116,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponentData
 			fullLoad.Columns.Add("drag torque");
 			fullLoad.Columns.Add("PT1");
 			fullLoad.Rows.Add("3", "3", "-3", "3");
-			fullLoad.Rows.Add("3", "3", "-3", "3");
+			fullLoad.Rows.Add("4", "3", "-3", "3");
 			var data = new MockEngineDataProvider {
 				Model = "asdf",
 			    Displacement = 6374.SI(Unit.SI.Cubic.Centi.Meter).Cast<CubicMeter>(),
@@ -151,7 +151,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponentData
 			fullLoad.Columns.Add("drag torque");
 			fullLoad.Columns.Add("PT1");
 			fullLoad.Rows.Add("3", "3", "-3", "3");
-			fullLoad.Rows.Add("3", "3", "-3", "3");
+			fullLoad.Rows.Add("4", "3", "-3", "3");
 			var data = new MockEngineDataProvider {
 				Model = "asdf",
 			    Displacement = 6374.SI(Unit.SI.Cubic.Centi.Meter).Cast<CubicMeter>(),