diff --git a/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs b/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs
index 99cc19853cc3880c32bd2b38bf4224e0c493f8c3..3ce4cc26db60640e81c506b569fb389f0225113a 100644
--- a/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs
+++ b/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs
@@ -73,8 +73,6 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 			var engine = new CombustionEngine(_container, data.EngineData);
 			var clutch = new Clutch(_container, data.EngineData, engine.IdleController);
 
-			engine.IdleController.RequestPort = clutch.IdleControlPort;
-
 			// gearbox --> clutch
 			tmp = AddComponent(tmp, clutch);
 
@@ -101,6 +99,8 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 			// connect aux --> engine
 			AddComponent(tmp, engine);
 
+			engine.IdleController.RequestPort = clutch.IdleControlPort;
+
 			return _container;
 		}
 
diff --git a/VectoCoreTest/Integration/CoachPowerTrain.cs b/VectoCoreTest/Integration/CoachPowerTrain.cs
index a6f09c1b11068a55ff78c837ca9f0515c935b548..7c51fe92be39434a251eb020212291e00aef6609 100644
--- a/VectoCoreTest/Integration/CoachPowerTrain.cs
+++ b/VectoCoreTest/Integration/CoachPowerTrain.cs
@@ -51,7 +51,6 @@ namespace TUGraz.VectoCore.Tests.Integration
 			var cycle = new DistanceBasedDrivingCycle(container, cycleData);
 			var engine = new CombustionEngine(container, engineData);
 			var clutch = new Clutch(container, engineData, engine.IdleController);
-			engine.IdleController.RequestPort = clutch.IdleControlPort;
 
 			dynamic tmp = Port.AddComponent(cycle, new Driver(container, driverData, new DefaultDriverStrategy()));
 			tmp = Port.AddComponent(tmp, new Vehicle(container, vehicleData));
@@ -68,6 +67,8 @@ namespace TUGraz.VectoCore.Tests.Integration
 
 			Port.AddComponent(tmp, engine);
 
+			engine.IdleController.RequestPort = clutch.IdleControlPort;
+
 			return container;
 		}
 
diff --git a/VectoCoreTest/Integration/SimulationRuns/FullPowertrain.cs b/VectoCoreTest/Integration/SimulationRuns/FullPowertrain.cs
index b3f6592d56e5dc588a7c2d0f63fc962097ab6222..24895eb4d2d85caa0ff89830670d6a8c4fc06ac9 100644
--- a/VectoCoreTest/Integration/SimulationRuns/FullPowertrain.cs
+++ b/VectoCoreTest/Integration/SimulationRuns/FullPowertrain.cs
@@ -60,9 +60,9 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns
 			tmp = Port.AddComponent(tmp, gbx);
 			var engine = new CombustionEngine(container, engineData);
 			var clutch = new Clutch(container, engineData, engine.IdleController);
-			engine.IdleController.RequestPort = clutch.IdleControlPort;
 			tmp = Port.AddComponent(tmp, clutch);
 			Port.AddComponent(tmp, engine);
+			engine.IdleController.RequestPort = clutch.IdleControlPort;
 
 			cyclePort.Initialize();
 
@@ -119,9 +119,9 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns
 			tmp = Port.AddComponent(tmp, gbx);
 			var engine = new CombustionEngine(container, engineData);
 			var clutch = new Clutch(container, engineData, engine.IdleController);
-			engine.IdleController.RequestPort = clutch.IdleControlPort;
 			tmp = Port.AddComponent(tmp, clutch);
 			Port.AddComponent(tmp, engine);
+			engine.IdleController.RequestPort = clutch.IdleControlPort;
 
 			cyclePort.Initialize();
 
@@ -194,9 +194,9 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns
 			tmp = Port.AddComponent(tmp, new Gearbox(container, gearboxData, new AMTShiftStrategy(gearboxData, container)));
 			var engine = new CombustionEngine(container, engineData);
 			var clutch = new Clutch(container, engineData, engine.IdleController);
-			engine.IdleController.RequestPort = clutch.IdleControlPort;
 			tmp = Port.AddComponent(tmp, clutch);
 			Port.AddComponent(tmp, engine);
+			engine.IdleController.RequestPort = clutch.IdleControlPort;
 
 			cyclePort.Initialize();
 
diff --git a/VectoCoreTest/Integration/SimulationRuns/MinimalPowertrain.cs b/VectoCoreTest/Integration/SimulationRuns/MinimalPowertrain.cs
index 6354e58a9a470ff2ecd9d81fb146a1f488adeb07..b913f47b4e88161f80225b99f839ca8630aa161d 100644
--- a/VectoCoreTest/Integration/SimulationRuns/MinimalPowertrain.cs
+++ b/VectoCoreTest/Integration/SimulationRuns/MinimalPowertrain.cs
@@ -55,9 +55,9 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns
 
 			var engine = new CombustionEngine(vehicleContainer, engineData);
 			var clutch = new Clutch(vehicleContainer, engineData, engine.IdleController);
-			engine.IdleController.RequestPort = clutch.IdleControlPort;
 			tmp = Port.AddComponent(tmp, clutch);
 			Port.AddComponent(tmp, engine);
+			engine.IdleController.RequestPort = clutch.IdleControlPort;
 
 			var gbx = new MockGearbox(vehicleContainer);
 
@@ -108,9 +108,9 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns
 			tmp = Port.AddComponent(tmp, new AxleGear(vehicleContainer, axleGearData));
 			var engine = new CombustionEngine(vehicleContainer, engineData);
 			var clutch = new Clutch(vehicleContainer, engineData, engine.IdleController);
-			engine.IdleController.RequestPort = clutch.IdleControlPort;
 			tmp = Port.AddComponent(tmp, clutch);
 			Port.AddComponent(tmp, engine);
+			engine.IdleController.RequestPort = clutch.IdleControlPort;
 
 			var gbx = new MockGearbox(vehicleContainer);
 
@@ -180,9 +180,9 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns
 			tmp = Port.AddComponent(tmp, new AxleGear(vehicleContainer, axleGearData));
 			var engine = new CombustionEngine(vehicleContainer, engineData);
 			var clutch = new Clutch(vehicleContainer, engineData, engine.IdleController);
-			engine.IdleController.RequestPort = clutch.IdleControlPort;
 			tmp = Port.AddComponent(tmp, clutch);
 			Port.AddComponent(tmp, engine);
+			engine.IdleController.RequestPort = clutch.IdleControlPort;
 
 			var gbx = new MockGearbox(vehicleContainer);
 
diff --git a/VectoCoreTest/Integration/Truck40tPowerTrain.cs b/VectoCoreTest/Integration/Truck40tPowerTrain.cs
index eda9db83474f16242f0686f116dc624d79895604..c8fdea058965bba9c48eb1ed20a3ea841136f679 100644
--- a/VectoCoreTest/Integration/Truck40tPowerTrain.cs
+++ b/VectoCoreTest/Integration/Truck40tPowerTrain.cs
@@ -58,7 +58,6 @@ namespace TUGraz.VectoCore.Tests.Integration
 			var cycle = new DistanceBasedDrivingCycle(container, cycleData);
 			var engine = new CombustionEngine(container, engineData);
 			var clutch = new Clutch(container, engineData, engine.IdleController);
-			engine.IdleController.RequestPort = clutch.IdleControlPort;
 
 			dynamic tmp = Port.AddComponent(cycle, new Driver(container, driverData, new DefaultDriverStrategy()));
 			tmp = Port.AddComponent(tmp, new Vehicle(container, vehicleData));
@@ -74,6 +73,7 @@ namespace TUGraz.VectoCore.Tests.Integration
 			tmp = Port.AddComponent(tmp, aux);
 
 			Port.AddComponent(tmp, engine);
+			engine.IdleController.RequestPort = clutch.IdleControlPort;
 
 			return container;
 		}
diff --git a/VectoCoreTest/Models/SimulationComponent/DriverTest.cs b/VectoCoreTest/Models/SimulationComponent/DriverTest.cs
index f9466a24b6ff807e8a1bd70f7bbc1c4d4e783c22..1a8d15854c387a7bb09cd080096b6652c427e4f1 100644
--- a/VectoCoreTest/Models/SimulationComponent/DriverTest.cs
+++ b/VectoCoreTest/Models/SimulationComponent/DriverTest.cs
@@ -48,11 +48,11 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 			var driver = new Driver(vehicleContainer, driverData, new DefaultDriverStrategy());
 			var engine = new CombustionEngine(vehicleContainer, engineData);
 			var clutch = new Clutch(vehicleContainer, engineData, engine.IdleController);
-			engine.IdleController.RequestPort = clutch.IdleControlPort;
 			dynamic tmp = AddComponent(driver, new Vehicle(vehicleContainer, vehicleData));
 			tmp = AddComponent(tmp, new Wheels(vehicleContainer, vehicleData.DynamicTyreRadius));
 			tmp = AddComponent(tmp, clutch);
 			AddComponent(tmp, engine);
+			engine.IdleController.RequestPort = clutch.IdleControlPort;
 
 			var gbx = new MockGearbox(vehicleContainer) { Gear = 1 };
 
@@ -104,12 +104,12 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 			var driver = new Driver(vehicleContainer, driverData, new DefaultDriverStrategy());
 			var engine = new CombustionEngine(vehicleContainer, engineData);
 			var clutch = new Clutch(vehicleContainer, engineData, engine.IdleController);
-			engine.IdleController.RequestPort = clutch.IdleControlPort;
 
 			dynamic tmp = AddComponent(driver, new Vehicle(vehicleContainer, vehicleData));
 			tmp = AddComponent(tmp, new Wheels(vehicleContainer, vehicleData.DynamicTyreRadius));
 			tmp = AddComponent(tmp, clutch);
 			AddComponent(tmp, engine);
+			engine.IdleController.RequestPort = clutch.IdleControlPort;
 
 			var gbx = new MockGearbox(vehicleContainer);
 			gbx.Gear = 1;