diff --git a/Directory.Build.props b/Directory.Build.props
index 79cd84c3d268ce41640bbf20db0e983a10fe3dfb..55c7a8c28fa9c7ac9d18393c1e1eace2a9288533 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -8,7 +8,7 @@
     <!-- <DefineConstants>CERTIFICATION_RELEASE</DefineConstants> -->
 
     <!-- Global VECTO Version -->
-    <MainProductVersion>4.0.1</MainProductVersion>
+    <MainProductVersion>4.0.2</MainProductVersion>
     <!-- <VersionSuffix>RC</VersionSuffix> -->
 
     <!-- The following settings are used as default values for ALL projects -->
diff --git a/Documentation/User Manual Source/Release Notes Vecto4.x.pptx b/Documentation/User Manual Source/Release Notes Vecto4.x.pptx
index 5d1edbf415e457bb4f3385f904d61ea30f157a9b..0e093b114f1df9db8338c153d5e7dc9182fa5424 100644
Binary files a/Documentation/User Manual Source/Release Notes Vecto4.x.pptx and b/Documentation/User Manual Source/Release Notes Vecto4.x.pptx differ
diff --git a/Documentation/User Manual/6-changelog/changelog.md b/Documentation/User Manual/6-changelog/changelog.md
index 5a90a7278b22445166424a9d04a5c8051927742b..637a4ac27da38452d0d75ba11b3409f196c8c9b7 100644
--- a/Documentation/User Manual/6-changelog/changelog.md	
+++ b/Documentation/User Manual/6-changelog/changelog.md	
@@ -2,6 +2,12 @@
 
 **VECTO-4.0.2**
 
+***Build 3275 (2023-12-20)***
+
+- Hotfix
+    * CodeEU-273, CodeEU-274: Changes in the AMT shift strategy regarding idling speed caused simulation aborts
+    * CodeEU-260: regression fix handling overload buffer
+
 ***Build 3273 (2023-12-18)***
 
 - Bugfixes
diff --git a/Documentation/User Manual/help.html b/Documentation/User Manual/help.html
index b38947ecf46f0a1b1f061eee2aa5751b3fc36c7b..df7c636f64a42ee1b1f54aef7b4cba05cd656b09 100644
--- a/Documentation/User Manual/help.html	
+++ b/Documentation/User Manual/help.html	
@@ -10624,6 +10624,15 @@ stored as LOG_backup.txt.</p>
 <section id="changelog" class="level1">
 <h1>Changelog</h1>
 <p><strong>VECTO-4.0.2</strong></p>
+<p><strong><em>Build 3275 (2023-12-20)</em></strong></p>
+<ul>
+<li>Hotfix
+<ul>
+<li>CodeEU-273, CodeEU-274: Changes in the AMT shift strategy regarding
+idling speed caused simulation aborts</li>
+<li>CodeEU-260: regression fix handling overload buffer</li>
+</ul></li>
+</ul>
 <p><strong><em>Build 3273 (2023-12-18)</em></strong></p>
 <ul>
 <li>Bugfixes
diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/SimulationComponents/ElectricMachinesDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/SimulationComponents/ElectricMachinesDataAdapter.cs
index 4c52c92559dab42c6f5ce821e9c6f54c2d9e1c26..781bb713b5ac5bd437494116182f99fc64dffea7 100644
--- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/SimulationComponents/ElectricMachinesDataAdapter.cs
+++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/SimulationComponents/ElectricMachinesDataAdapter.cs
@@ -354,6 +354,13 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.SimulationComponen
 		protected OverloadData CalculateOverloadData(IElectricMotorDeclarationInputData motorData, int count,
 			VoltageLevelData voltageLevel, Volt averageVoltage)
 		{
+			var vMin = motorData.VoltageLevels.MinBy(x => x.VoltageLevel);
+			var vMax = motorData.VoltageLevels.MaxBy(x => x.VoltageLevel);
+
+			var ratioContTqMin = vMin.ContinuousTorque / vMin.OverloadTorque;
+			var ratioContTqMax = vMax.ContinuousTorque / vMax.OverloadTorque;
+			bool lowContinuousTorque = ratioContTqMin < 0.1 && ratioContTqMax < 0.1;
+
 			// if average voltage is outside of the voltage-level range, do not extrapolate but take the min voltage entry, or max voltage entry
 			if (averageVoltage < motorData.VoltageLevels.Min(x => x.VoltageLevel)) {
 				return CalculateOverloadBuffer(motorData.VoltageLevels.First(), count, voltageLevel);
@@ -366,14 +373,36 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.SimulationComponen
 			var ovlLo = CalculateOverloadBuffer(vLow, count, voltageLevel);
 			var ovlHi = CalculateOverloadBuffer(vHigh, count, voltageLevel);
 
-			var retVal = new OverloadData() {
+			var continuousPowerLoss = lowContinuousTorque
+				? VectoMath.Interpolate(vLow.VoltageLevel,
+					vHigh.VoltageLevel, CalculatePowerLossLowContinuousTorque(vLow, count, voltageLevel),
+					CalculatePowerLossLowContinuousTorque(vHigh, count, voltageLevel), averageVoltage)
+				: VectoMath.Interpolate(vLow.VoltageLevel,
+					vHigh.VoltageLevel, ovlLo.ContinuousPowerLoss, ovlHi.ContinuousPowerLoss, averageVoltage);
+
+            var retVal = new OverloadData() {
 				OverloadBuffer = VectoMath.Interpolate(vLow.VoltageLevel, vHigh.VoltageLevel, ovlLo.OverloadBuffer, ovlHi.OverloadBuffer, averageVoltage),
 				ContinuousTorque = VectoMath.Interpolate(vLow.VoltageLevel, vHigh.VoltageLevel, ovlLo.ContinuousTorque, ovlHi.ContinuousTorque, averageVoltage),
-				ContinuousPowerLoss = VectoMath.Interpolate(vLow.VoltageLevel, vHigh.VoltageLevel, ovlLo.ContinuousPowerLoss, ovlHi.ContinuousPowerLoss, averageVoltage)
+				ContinuousPowerLoss = continuousPowerLoss
 			};
 			return retVal;
 		}
 
+		private Watt CalculatePowerLossLowContinuousTorque(IElectricMotorVoltageLevel voltageEntry, int count, VoltageLevelData voltageLevel)
+		{
+			var estimatedContTq = voltageEntry.OverloadTorque * count * 0.5;
+			var extimatedContTqSpeed = voltageEntry.OverloadTestSpeed;
+			var gear = new GearshiftPosition(0);
+			var contElPwr = voltageLevel.LookupElectricPower(voltageEntry.VoltageLevel, extimatedContTqSpeed,
+								-estimatedContTq, gear).ElectricalPower ??
+							voltageLevel.LookupElectricPower(voltageEntry.VoltageLevel, extimatedContTqSpeed,
+								voltageLevel.FullLoadDriveTorque(voltageEntry.VoltageLevel, extimatedContTqSpeed),
+								gear, true).ElectricalPower;
+
+            var continuousPowerLoss = -contElPwr - estimatedContTq * extimatedContTqSpeed; // loss needs to be positive
+			return continuousPowerLoss;
+        }
+
 		protected OverloadData CalculateOverloadBuffer(IElectricMotorVoltageLevel voltageEntry,
 			int count, VoltageLevelData voltageLevel, Tuple<uint, double> gearUsedForMeasurement = null)
 		{
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Shiftstrategies/AMTShiftStrategy.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Shiftstrategies/AMTShiftStrategy.cs
index 2a0e7ed8b22f293d678e2b95f2d48c38a53cca51..5bab4a423b21d3d95b3e204b3610b98c3cf0b362 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Shiftstrategies/AMTShiftStrategy.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Shiftstrategies/AMTShiftStrategy.cs
@@ -109,8 +109,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 
 		private bool SpeedTooLowForEngine(GearshiftPosition gear, PerSecond outAngularSpeed)
 		{
-			return (outAngularSpeed * GearboxModelData.Gears[gear.Gear].Ratio).IsSmaller(
-				Constants.SimulationSettings.DownshiftIdlespeedFactor * DataBus.EngineInfo.EngineIdleSpeed);
+			return (outAngularSpeed * GearboxModelData.Gears[gear.Gear].Ratio).IsSmaller(DataBus.EngineInfo.EngineIdleSpeed);
 		}
 
 		private bool SpeedTooHighForEngine(GearshiftPosition gear, PerSecond outAngularSpeed)