diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATShiftStrategyOptimized.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATShiftStrategyOptimized.cs
index 11e03742c1cfab151696e24cbfd4c9bde215921b..db1361632c85b547a9aa7ad6323223fe00b04b73 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATShiftStrategyOptimized.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATShiftStrategyOptimized.cs
@@ -51,11 +51,14 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 			var modData = new ModalDataContainer(runData, null, null, false);
 			var builder = new PowertrainBuilder(modData);
 			TestContainer = new SimplePowertrainContainer(runData);
+			
 			builder.BuildSimplePowertrain(runData, TestContainer);
 			TestContainerGbx = TestContainer.GearboxCtl as ATGearbox;
 			if (TestContainerGbx == null) {
 				throw new VectoException("Unknown gearboxtype: {0}", TestContainer.GearboxCtl.GetType().FullName);
 			}
+			// initialize vehicle so that vehicleStopped of the testcontainer is false (required for test-runs)
+			TestContainer.VehiclePort.Initialize(10.KMPHtoMeterPerSecond(), 0.SI<Radian>());
 
 			if (runData.Cycle.CycleType == CycleType.MeasuredSpeed) {
 				try {
@@ -186,6 +189,9 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 				}
 
 				var next = GearList[currentIdx - i];
+				if (!next.TorqueConverterLocked.Value) {
+					continue;
+				}
 				if (current.TorqueConverterLocked != next.TorqueConverterLocked && current.Gear != next.Gear) {
 					// downshift from C to L with skipping gear not allowed
 					continue;
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Vehicle.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Vehicle.cs
index 9da3b6a0fa4d6cbf913b001016e62c62cc5d74e3..d7b23d6f6e639b4d8e64bd8062237629dbe796be 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Vehicle.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Vehicle.cs
@@ -84,7 +84,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 												+ PreviousState.AirDragResistance
 												+ PreviousState.SlopeResistance;
 
-			return NextComponent.Initialize(PreviousState.VehicleTractionForce, vehicleSpeed);
+			return NextComponent?.Initialize(PreviousState.VehicleTractionForce, vehicleSpeed);
 		}
 
 		public IResponse Initialize(MeterPerSecond vehicleSpeed, Radian roadGradient, MeterPerSquareSecond startAcceleration)