diff --git a/Documentation/Checklist_Release_VECTO_3.3.8.2024.docx b/Documentation/Checklist_Release_VECTO_3.3.8.2024.docx
new file mode 100644
index 0000000000000000000000000000000000000000..1ee947b08c83b3332af89adfe4b753f933060742
Binary files /dev/null and b/Documentation/Checklist_Release_VECTO_3.3.8.2024.docx differ
diff --git a/Documentation/Checklist_Release_VECTO_3.3.8.2024.pdf b/Documentation/Checklist_Release_VECTO_3.3.8.2024.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..c1df2ce95e7ad472d9ac77df5ef6797246e28cc9
Binary files /dev/null and b/Documentation/Checklist_Release_VECTO_3.3.8.2024.pdf differ
diff --git a/Documentation/User Manual Source/Release Notes Vecto3.x.pdf b/Documentation/User Manual Source/Release Notes Vecto3.x.pdf
index 9b8c4edfa2c0a3c16aa9e514e5c855fcd579f0c4..43410658992d7d28f6e7625f74748ecc2dd70695 100644
Binary files a/Documentation/User Manual Source/Release Notes Vecto3.x.pdf and b/Documentation/User Manual Source/Release Notes Vecto3.x.pdf differ
diff --git a/Documentation/User Manual Source/Release Notes Vecto3.x.pptx b/Documentation/User Manual Source/Release Notes Vecto3.x.pptx
index 4340b10959851973349ae6d619faf559864741af..897cd2cdf5a0819881c94595a0d5051b5095b872 100644
Binary files a/Documentation/User Manual Source/Release Notes Vecto3.x.pptx and b/Documentation/User Manual Source/Release Notes Vecto3.x.pptx differ
diff --git a/Documentation/User Manual/6-changelog/changelog.md b/Documentation/User Manual/6-changelog/changelog.md
index 76297b458808324801490ba696577871e4951f9b..6562a838e1e0acccf4ccf73e3b87e4d6ad8b41de 100644
--- a/Documentation/User Manual/6-changelog/changelog.md	
+++ b/Documentation/User Manual/6-changelog/changelog.md	
@@ -1,8 +1,18 @@
 #Changelog
 
+**VECTO-3.3.8**
+
+***Build 2024 (2020-07-17) RELEASE CANDIDATE***
+
+- Bugfixes 
+    * [VECTO-1288] - Simulation Abort UD RL
+    * [VECTO-1327] - Simulation abort Construction RefLoad: unexpected response ResponseOverload
+    * [VECTO-1266] - Gear 4 Loss-Map was extrapolated
+
+
 **VECTO 3.3.7**
 
-*** Build 1964 (2020-05-18) OFFICIAL RELEASE***
+***Build 1964 (2020-05-18) OFFICIAL RELEASE***
 
 - Bugfixes
     * [VECTO-1254] - Hashing method does not ignore certain XML attributes
diff --git a/Documentation/User Manual/help.html b/Documentation/User Manual/help.html
index 093a026884c8a6433ca44d59a57e7f4b151e1928..c890f477b1433b495954cb4c29b467492d90ceb4 100644
--- a/Documentation/User Manual/help.html	
+++ b/Documentation/User Manual/help.html	
@@ -6944,7 +6944,7 @@ CycleTime,UnknownCycleName,3600</code></pre>
 <h2>Modal Results (.vmod)</h2>
 <p>Modal results are only created if enabled in the <a href="#main-form">Options</a> tab. One file is created for each calculation and stored in the same directory as the .vecto file.</p>
 <p>In Vecto 3 the structure of the modal data output has been revised and re-structured. Basically for every powertrain component the .vmod file contains the power at the input shaft and the individual power losses for every component. For the engine the power, torque and engine speed at the output shaft is given along with the internal power and torque used for computing the fuel consumption. See <a href="#powertrain-and-components-structure">Powertrain and Components Structure</a> for schematics how the powertrain looks like and which positions in the powertrain the values represent.</p>
-<p>Every line in the .vmod file represents the simulation interval from time - dt/2 to time + dt/2. All values represent the average power/torque/angular velocity during this simulation interval. If a certain power value can be described as function of the vehicle’s acceleration the average power is calculated by <img style="vertical-align:middle" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAR4AAAApBAMAAAAR71tEAAAAMFBMVEX///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAid2ZuzKrVCJmEO9Eds0xWRQzAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAE5klEQVRYCc1Xa2gcVRT+Zl/z2NmHjU2IP2yK9odFSAKi+CjsDxUiSKYKViiYRXz8qk6tmqaQOFJ8gMUMVQobmnbwT9CKuz9cS4vQiUUsRnELWgk0uPkRSn8o66vG4Ovce2dCdkgqd9sNuezee75zvnvP2TNn5swC6z7is+11aS7InX/3cU9ugxxb++53qQ3G0mNSfHmyXDyZurwHuR1y8WTzcqfLs+XiKfvyHuR2yMXT3mpmkcvF86Tcj22BLRfPJy14kNsiFY/2t9zhLbCl4lH/asGD3BYpD/GlpsONGsFMk2rTrx33W00aKWB0/rNZYkOsIchKb/8dDwAphow+NicHHbYgUYS6yKX1mMr1wMuDwCsOLlI0Hka4boaJQM6F8WdAav/yDc8F+SGXZRd1ykcNWe73AhOBIQvJP7hiPaYtrvCSpLtgyFYJ5SwoNlMOMBE4DsRPC9I6zIPMJQ29AdzrJRxgN2AWQWORicBTwExAYrDN40xwfqoAs4o0MP1TN1AB5oYrXMTHpbmbmoKIP8NGvkl3vYD2S3BSemDyvIcYoQH6NpBwU0UualKPj2uNS70SnDDuM+Ft+rJ7+zTeRarGRXYh1xq5f6/fEG6UsF1Q1dJ4gmqHrhW24xTSFhdTdWZYr5EIr8Zz3ON7gFIkqaItYkiIMV4oXbM4YvSopT4ytrN+0mG72MrjoXrOulMUT7KBb00ujttkSVjn9ZhXP2uw5LVzlHvE6Zp44mWppK0atAIqxrzORGXwWWI8gvuottyFZEHQ2zaHj+cbr7A0IGND/d6B7uLs8KMTTBTjHaqoOdiNTC1QXGVRbrmKcS3Tpj5h+cFtYmhFDhNekxbYq223u0yvkvUjBgY/i+guCUzNz+xZYVoGH6xQhmKWpwN43gk1Yn2IL683K6mEh/fg4FFMirswYj0UwUFJUvPT/BWmZfDwCmUo5jwh9YaKYD3I13si2mX40bK0thDmgTe/1WirvS+GOf4tssFkedOtiDaAqjW3uqFJq/QJyJtfk0WAZGUVZYfQaT9HbQ4ptKgywEopH7WUSs6uPkxOlJ6eetkCifvogUHN7yWHml9yH6DObsYomUFAnX3/iGXePO9iZBTT57p90p1wGBmXxcHX+vasusqEXdU+P4UxWy0YdhV7kHNY86tT85tKW9iBt5j5RQYO7XbVAhmpFZn+/q1KkXRZn5ODF1ClEf3BclhZMEytoeo9OIxM0aSnaBUzYM0vT83PH4deR24XmS8wYDMSi/cwlDc+PG06/hAyDiPzzkSuE3U5/1G21nsSVC/xPOWF7ielqDXQCdb8fOaiA2kXZYubCaCfMsPivXXkokHbQFydk3mTIpzORz1IYm0L9V3yTnkpO4j5eoFKYbn5VTHu0Pslmel6VIFPWXI6YbCrw584t0PnZFZzbIi3DCG3Ml9CGi+YGAfl5ZiJnJeq2Yuvhc1P7aELgh/JrNZ9AkQaM3HZONAgX2WPpiU8zsm5Ny1C9I+Cz61PRXyNG3QcA+Vlh44cTpz7suGGzU/JuzFLL5I5nncJUDH169iWwTao1hjzugRBLusihjtbD4Xv/GrYxc4DmGX/AKZt6Hd90Y1uP2x+yS5P6yqBzCTRJ8PJo/vx6vAEtUMae0fAycpREchJsWyQeT68zTZIPLcl7A0SiQhjJ/2z+Z/xH5EUoQb/tzTFAAAAAElFTkSuQmCC" alt="P_{avg} = \frac{1}{simulation interval} \int{P(t) dt}" title="P_{avg} = \frac{1}{simulation interval} \int{P(t) dt}" />. <strong>Note:</strong> Columns for the torque converter operating point represent the torque/angular speed at the end of the simulation interval!</p>
+<p>Every line in the .vmod file represents the simulation interval from time - dt/2 to time + dt/2. All values represent the average power/torque/angular velocity during this simulation interval. If a certain power value can be described as function of the vehicle’s acceleration the average power is calculated by <img style="vertical-align:middle" src="data:image/png;base64,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" alt="P_{avg} = \frac{1}{simulation interval} \int{P(t) dt}" title="P_{avg} = \frac{1}{simulation interval} \int{P(t) dt}" />. <strong>Note:</strong> Columns for the torque converter operating point represent the torque/angular speed at the end of the simulation interval!</p>
 <p>The following table lists the columns in the .vmod file:</p>
 <p><strong><em>Quantities:</em></strong></p>
 <table style="width:94%;">
@@ -7621,6 +7621,16 @@ CycleTime,UnknownCycleName,3600</code></pre>
 </div>
 <div id="changelog" class="section level1">
 <h1>Changelog</h1>
+<p><strong>VECTO-3.3.8</strong></p>
+<p>*** Build 2024 (2020-07-17) RELEASE CANDIDATE***</p>
+<ul>
+<li>Bugfixes
+<ul>
+<li>[VECTO-1288] - Simulation Abort UD RL</li>
+<li>[VECTO-1327] - Simulation abort Construction RefLoad: unexpected response ResponseOverload</li>
+<li>[VECTO-1266] - Gear 4 Loss-Map was extrapolated</li>
+</ul></li>
+</ul>
 <p><strong>VECTO 3.3.7</strong></p>
 <p>*** Build 1964 (2020-05-18) OFFICIAL RELEASE***</p>
 <ul>
diff --git a/HashingTool/Properties/Version.cs b/HashingTool/Properties/Version.cs
index 25ca907e85f01172efa485f9ad1f387eaba89e11..6adc38074abf407ca5c15d53778e506238da16ba 100644
--- a/HashingTool/Properties/Version.cs
+++ b/HashingTool/Properties/Version.cs
@@ -30,5 +30,5 @@
 */
 
 using System.Reflection;
-[assembly: AssemblyVersion("0.2.0.1964")]
-[assembly: AssemblyFileVersion("0.2.0.1964")]
+[assembly: AssemblyVersion("0.2.0.2024")]
+[assembly: AssemblyFileVersion("0.2.0.2024")]
diff --git a/VECTO/VECTO.vbproj b/VECTO/VECTO.vbproj
index 2d2c4f2909e3858a79adbc431f4b314a0276cc92..a8ef30e92c591628db4c53b1e7873148e158bc5b 100644
--- a/VECTO/VECTO.vbproj
+++ b/VECTO/VECTO.vbproj
@@ -141,7 +141,7 @@
     <PlatformTarget>AnyCPU</PlatformTarget>
     <WarningsAsErrors>41999,42016,42017,42018,42019,42020,42021,42022,42032,42036</WarningsAsErrors>
     <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
-    <DefineConstants>CERTIFICATION_RELEASE</DefineConstants>
+    <DefineConstants>RELEASE_CANDIDATE</DefineConstants>
     <Prefer32Bit>false</Prefer32Bit>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Deploy|x86'">
diff --git a/VectoCommon/VectoCommon/Properties/Version.cs b/VectoCommon/VectoCommon/Properties/Version.cs
index c5f2fcc42dc3425edd0da19cf81d28a4629fa536..46767aee6d15d21af1f208db5a818f1646507936 100644
--- a/VectoCommon/VectoCommon/Properties/Version.cs
+++ b/VectoCommon/VectoCommon/Properties/Version.cs
@@ -30,5 +30,5 @@
 */
 
 using System.Reflection;
-[assembly: AssemblyVersion("3.3.7.1964")]
-[assembly: AssemblyFileVersion("3.3.7.1964")]
\ No newline at end of file
+[assembly: AssemblyVersion("3.3.8.2024")]
+[assembly: AssemblyFileVersion("3.3.8.2024")]
\ No newline at end of file
diff --git a/VectoCommon/VectoHashing/Properties/Version.cs b/VectoCommon/VectoHashing/Properties/Version.cs
index 83fa5d2a1ace944e0aca4db903efea5fcb21463b..5b8675a54b8ee04f80ce49ace0dd570fc862c868 100644
--- a/VectoCommon/VectoHashing/Properties/Version.cs
+++ b/VectoCommon/VectoHashing/Properties/Version.cs
@@ -30,5 +30,5 @@
 */
 
 using System.Reflection;
-[assembly: AssemblyVersion("1.2.0.1964")]
-[assembly: AssemblyFileVersion("1.2.0.1964")]
+[assembly: AssemblyVersion("1.2.0.2024")]
+[assembly: AssemblyFileVersion("1.2.0.2024")]
diff --git a/VectoConsole/Properties/Version.cs b/VectoConsole/Properties/Version.cs
index 76215eeb752f7e9796ebdb682c16cca1f713065b..24186cdd6963e902be35cbe2421cb54d8607b2b2 100644
--- a/VectoConsole/Properties/Version.cs
+++ b/VectoConsole/Properties/Version.cs
@@ -30,5 +30,5 @@
 */
 
 using System.Reflection;
-[assembly: AssemblyVersion("3.3.7.1964")]
-[assembly: AssemblyFileVersion("3.3.7.1964")]
\ No newline at end of file
+[assembly: AssemblyVersion("3.3.8.2024")]
+[assembly: AssemblyFileVersion("3.3.8.2024")]
\ No newline at end of file
diff --git a/VectoCore/VectoCore/Configuration/Constants.cs b/VectoCore/VectoCore/Configuration/Constants.cs
index 94a44c78e82a99e62c55ff68f784bc10277d079a..0bcd8fd498503ed8b1b0206f0912d95b35a980be 100644
--- a/VectoCore/VectoCore/Configuration/Constants.cs
+++ b/VectoCore/VectoCore/Configuration/Constants.cs
@@ -144,7 +144,7 @@ namespace TUGraz.VectoCore.Configuration
 
 			public static readonly Meter DriverActionDistanceTolerance = 0.25.SI<Meter>();
 
-			public static readonly MeterPerSecond VehicleSpeedHaltTolerance = 1e-3.SI<MeterPerSecond>();
+			public static readonly MeterPerSecond VehicleSpeedHaltTolerance = 2e-3.SI<MeterPerSecond>();
 
 			/// <summary>
 			/// The initial search interval for the operating point search in the driver.
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs
index 6e991caee2c7aa5ad2cbe6c7dbed8ed920276d3f..72f808622cb0a3ade553c1ba85d9ba0c78cc8ffe 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs
@@ -560,7 +560,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 					throw new VectoException("IdleController can only handle idle requests, i.e. angularVelocity == null!");
 				}
 				if (!outTorque.IsEqual(0)) {
-					throw new VectoException("Torque has to be 0 for idle requests!");
+					throw new VectoException("Torque has to be 0 for idle requests! {0}", outTorque);
 				}
 				if (_idleStart == null) {
 					_idleStart = absTime;
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/DefaultDriverStrategy.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/DefaultDriverStrategy.cs
index b3ba688c71b7d24155a3b71c73d68cfb27cf0f3a..7ac10086c79d50966ccfbde579f2ab46fed9b5f6 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/DefaultDriverStrategy.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/DefaultDriverStrategy.cs
@@ -99,13 +99,15 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 						0.SI<Meter>(), Constants.SimulationSettings.DriverActionDistanceTolerance);
 					var closeBeforeBraking = estimatedTimestep.IsSmaller(Constants.SimulationSettings.LowerBoundTimeInterval);
 					var brakingIntervalTooShort = NextDrivingAction.Action == DrivingBehavior.Braking &&
+												NextDrivingAction.ActionDistance.IsSmaller(currentDistance + ds) &&
 												((NextDrivingAction.TriggerDistance - NextDrivingAction.ActionDistance) / Driver.DataBus.VehicleSpeed)
 												.IsSmaller(
-													Constants.SimulationSettings.LowerBoundTimeInterval / 20) && !Driver.DataBus.ClutchClosed(absTime);
+													Constants.SimulationSettings.LowerBoundTimeInterval / 2) && (Driver.DataBus.GearboxType.AutomaticTransmission() || !Driver.DataBus.ClutchClosed(absTime));
 					var brakingIntervalShort = NextDrivingAction.Action == DrivingBehavior.Braking &&
+												NextDrivingAction.ActionDistance.IsSmaller(currentDistance + ds) &&
 												((NextDrivingAction.TriggerDistance - NextDrivingAction.ActionDistance) / Driver.DataBus.VehicleSpeed)
 												.IsSmaller(
-													Constants.SimulationSettings.LowerBoundTimeInterval / 2) && !Driver.DataBus.ClutchClosed(absTime);
+													Constants.SimulationSettings.LowerBoundTimeInterval / 2) && (Driver.DataBus.GearboxType.AutomaticTransmission() || !Driver.DataBus.ClutchClosed(absTime));
 					if (brakingIntervalShort && remainingDistance.IsEqual(ds)) {
 						return new ResponseDrivingCycleDistanceExceeded()
 						{
@@ -490,8 +492,12 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 			debug.Add(new { action = "ClutchOpen -> Roll", response });
 			response.Switch().Case<ResponseUnderload>(
 						r => {
-							response = Driver.DrivingActionBrake(absTime, ds, velocity, gradient, r);
-							debug.Add(new { action = "Roll:Underload -> Brake", response });
+							if (DataBus.ClutchClosed(absTime)) {
+								response = HandleRequestEngaged(absTime, ds, velocity, gradient, false, velocity, debug);
+							} else {
+								response = Driver.DrivingActionBrake(absTime, ds, velocity, gradient, r);
+								debug.Add(new { action = "Roll:Underload -> Brake", response });
+							}
 						})
 					.Case<ResponseSpeedLimitExceeded>(
 						() => {
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/DistanceBasedDrivingCycle.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/DistanceBasedDrivingCycle.cs
index e3310f1d60a775b7b2dfb50c9e7dc328dc8cdfca..8e54430aa92a56a86efa1b1d1d66040ddf5e946f 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/DistanceBasedDrivingCycle.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/DistanceBasedDrivingCycle.cs
@@ -31,6 +31,7 @@
 
 using System;
 using System.Collections.Generic;
+using System.Globalization;
 using System.Linq;
 using TUGraz.VectoCommon.Exceptions;
 using TUGraz.VectoCommon.Models;
@@ -58,6 +59,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 		internal readonly DrivingCycleEnumerator CycleIntervalIterator;
 		private bool _intervalProlonged;
 		internal IdleControllerSwitcher IdleController;
+		private Meter CycleEndDistance;
+
 
 		private DrivingCycleData.DrivingCycleEntry Left
 		{
@@ -74,6 +77,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 			Data = cycle;
 			CycleIntervalIterator = new DrivingCycleEnumerator(Data);
 			CycleStartDistance = Data.Entries.Count > 0 ? Data.Entries.First().Distance : 0.SI<Meter>();
+			CycleEndDistance = Data.Entries.Count > 0 ? Data.Entries.Last().Distance : 0.SI<Meter>();
 
 			var first = Data.Entries.First();
 			PreviousState = new DrivingCycleState {
@@ -139,6 +143,18 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 				};
 				return CurrentState.Response;
 			}
+
+			if (DataBus.VehicleSpeed.IsGreater(0) && Right.Distance.IsSmaller(CycleEndDistance)) {
+				var distanceToSpeedChange = nextSpeedChange - PreviousState.Distance;
+				var estimatedTimeToSpeedChange = distanceToSpeedChange / DataBus.VehicleSpeed;
+				if (estimatedTimeToSpeedChange.IsSmaller(Constants.SimulationSettings.LowerBoundTimeInterval / 2) &&
+					DataBus.VehicleSpeed.IsSmaller(Left.VehicleTargetSpeed, 1.KMPHtoMeterPerSecond()) &&
+					DataBus.VehicleSpeed.IsSmaller(Right.VehicleTargetSpeed, 1.KMPHtoMeterPerSecond())) {
+					CurrentState.Response = DriveDistance(absTime, ds);
+					return CurrentState.Response;
+				}
+			}
+
 			// only drive until next sample point in cycle with speed change
 			Log.Debug("Limiting distance to next sample point {0}",
 				Right.Distance - PreviousState.Distance);
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Gearbox.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Gearbox.cs
index e88ef84be88c91958a4ccb17dbb0af09fa05dff8..eeaf42f516deef4551c8c245848e36331839675b 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Gearbox.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Gearbox.cs
@@ -60,6 +60,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 		/// </summary>
 		protected internal bool Disengaged = true;
 
+		private bool postponeEngage;
+
 		public Second LastUpshift { get; protected internal set; }
 
 		public Second LastDownshift { get; protected internal set; }
@@ -71,7 +73,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 
 		public override bool ClutchClosed(Second absTime)
 		{
-			return _engageTime.IsSmallerOrEqual(absTime, ModelData.TractionInterruption / 20);
+			return _engageTime.IsSmallerOrEqual(absTime, ModelData.TractionInterruption / 20) && !postponeEngage;
 		}
 
 		public Gearbox(IVehicleContainer container, IShiftStrategy strategy, VectoRunData runData) : base(container, runData)
@@ -181,9 +183,15 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 				_engageTime = absTime + dt;
 			}
 
+			postponeEngage = false;
 			if (ClutchClosed(absTime) && Disengaged && !outAngularVelocity.IsEqual(0)) {
-				ReEngageGear(absTime, dt, outTorque, outAngularVelocity);
-				Log.Debug("Gearbox engaged gear {0}", Gear);
+				if (dt.IsSmaller(Constants.SimulationSettings.TargetTimeInterval / 10)) {
+					Log.Debug("postponing re-engage due to small simulation interval {0}", dt);
+					postponeEngage = true;
+				} else {
+					ReEngageGear(absTime, dt, outTorque, outAngularVelocity);
+					Log.Debug("Gearbox engaged gear {0}", Gear);
+				}
 			}
 
 			var gear = Disengaged ? NextGear.Gear : Gear;
@@ -420,6 +428,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 
 		protected override void DoCommitSimulationStep()
 		{
+			postponeEngage = false;
 			if (!Disengaged) {
 				if (CurrentState.TorqueLossResult != null && CurrentState.TorqueLossResult.Extrapolated) {
 					Log.Warn(
diff --git a/VectoCore/VectoCore/Properties/Version.cs b/VectoCore/VectoCore/Properties/Version.cs
index d889aa39fbb4bec36deb6cdcb4624d8e750a5dd1..cc32878f72c670c917ee6f8515a98c4e8f6bdf92 100644
--- a/VectoCore/VectoCore/Properties/Version.cs
+++ b/VectoCore/VectoCore/Properties/Version.cs
@@ -30,5 +30,5 @@
 */
 
 using System.Reflection;
-[assembly: AssemblyVersion("3.3.7.1964")]
-[assembly: AssemblyFileVersion("3.3.7.1964")]
+[assembly: AssemblyVersion("3.3.8.2024")]
+[assembly: AssemblyFileVersion("3.3.8.2024")]
diff --git a/VectoCore/VectoCore/Utils/VectoVersionCore.cs b/VectoCore/VectoCore/Utils/VectoVersionCore.cs
index b0f20093909f3d37206540f4ab2d3959cebdd46b..5edc3b63dbdfcef537c6fea5fea9fbdaafa1ba4f 100644
--- a/VectoCore/VectoCore/Utils/VectoVersionCore.cs
+++ b/VectoCore/VectoCore/Utils/VectoVersionCore.cs
@@ -47,7 +47,7 @@ namespace TUGraz.VectoCore.Utils
 		public static string VersionNumber
 		{
 			get {
-				return "3.3.7.1964" + SUFFIX;
+				return "3.3.8.2024" + SUFFIX;
 			}
 		}
 
diff --git a/VectoCore/VectoCore/VectoCore.csproj b/VectoCore/VectoCore/VectoCore.csproj
index 855d278785ab6b19cdabfb845d794cb870f56ed1..fa179c732bac4078aa9046c8825909dca46a1d01 100644
--- a/VectoCore/VectoCore/VectoCore.csproj
+++ b/VectoCore/VectoCore/VectoCore.csproj
@@ -76,7 +76,7 @@
     <DebugType>pdbonly</DebugType>
     <Optimize>true</Optimize>
     <OutputPath>bin\Release\</OutputPath>
-    <DefineConstants>CERTIFICATION_RELEASE</DefineConstants>
+    <DefineConstants>RELEASE_CANDIDATE</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
     <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
diff --git a/VectoCore/VectoCore/VersionNumber.t4 b/VectoCore/VectoCore/VersionNumber.t4
index 1b8af1d3f4c506e71a4e3b34e22ecfb1c0e24628..a2a649d8772ab57cc4874445cabe16cb06e398f7 100644
--- a/VectoCore/VectoCore/VersionNumber.t4
+++ b/VectoCore/VectoCore/VersionNumber.t4
@@ -6,6 +6,6 @@ int GetBuildNumber()
 
 string GetVectoCoreVersionNumber()
 {
-	return "3.3.7." + GetBuildNumber();
+	return "3.3.8." + GetBuildNumber();
 }
 #>
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/Integration/Declaration/EngineInputDataTests.cs b/VectoCore/VectoCoreTest/Integration/Declaration/EngineInputDataTests.cs
index a9c11b233037a075853d9f1b482c322b901009cd..33a78baf3472e40b9360fb1f11f1613a1c0399af 100644
--- a/VectoCore/VectoCoreTest/Integration/Declaration/EngineInputDataTests.cs
+++ b/VectoCore/VectoCoreTest/Integration/Declaration/EngineInputDataTests.cs
@@ -65,10 +65,10 @@ namespace TUGraz.VectoCore.Tests.Integration.Declaration
 			xmlInputReader = _kernel.Get<IXMLInputDataReader>();
 		}
 
-		[TestCase(null, 1.0, 45.542369, TestName = "Engine CF - NONE"),
-		TestCase("CFRegPer", 1.2, 45.542369 * 1.2, TestName = "Engine CF - CFRegPer"),
-		TestCase("BFColdHot", 1.2, 45.542369 * 1.2, TestName = "Engine CF - BFColdHod"),
-		TestCase("CFNCV", 1.2, 45.542369, TestName = "Engine CF - CFNCV")  // has no influence - only for documentation purpose
+		[TestCase(null, 1.0, 45.5401332, TestName = "Engine CF - NONE"),
+		TestCase("CFRegPer", 1.2, 45.5401332 * 1.2, TestName = "Engine CF - CFRegPer"),
+		TestCase("BFColdHot", 1.2, 45.5401332 * 1.2, TestName = "Engine CF - BFColdHod"),
+		TestCase("CFNCV", 1.2, 45.5401332, TestName = "Engine CF - CFNCV")  // has no influence - only for documentation purpose
 			]
 		public void TestEngineCorrectionFactors(string correctionFactor, double value, double expectedFc)
 		{