diff --git a/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs b/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs
index 052aaf2825af0bc00d62478132e6c7ddfcea99e6..f3832255fbb093c9d13a5998c8bfb3109a000f06 100644
--- a/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs
+++ b/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs
@@ -70,8 +70,9 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 					break;
 			}
 
+			var engine = new CombustionEngine(_container, data.EngineData);
 			// gearbox --> clutch
-			tmp = AddComponent(tmp, new Clutch(_container, data.EngineData));
+			tmp = AddComponent(tmp, new Clutch(_container, data.EngineData, engine.GetIdleController()));
 
 
 			// clutch --> direct aux --> ... --> aux_XXX --> directAux
@@ -94,7 +95,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 				tmp = AddComponent(tmp, aux);
 			}
 			// connect aux --> engine
-			AddComponent(tmp, new CombustionEngine(_container, data.EngineData));
+			AddComponent(tmp, engine);
 
 			return _container;
 		}
diff --git a/VectoCore/Models/SimulationComponent/ICombustionEngine.cs b/VectoCore/Models/SimulationComponent/ICombustionEngine.cs
index 6626e33d7ec3b2e00aef279d8ee3e820bfcda90f..34b0eaf1c0731c025e6445259fb4e12dc41130fb 100644
--- a/VectoCore/Models/SimulationComponent/ICombustionEngine.cs
+++ b/VectoCore/Models/SimulationComponent/ICombustionEngine.cs
@@ -6,5 +6,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent
 	/// <summary>
 	/// Defines Interfaces for a combustion engine.
 	/// </summary>
-	public interface ICombustionEngine : ITnOutProvider, IEngineInfo {}
+	public interface ICombustionEngine : ITnOutProvider, IEngineInfo
+	{
+		ICombustionEngineIdleController GetIdleController();
+	}
 }
\ No newline at end of file
diff --git a/VectoCore/Models/SimulationComponent/ICombustionEngineIdleController.cs b/VectoCore/Models/SimulationComponent/ICombustionEngineIdleController.cs
new file mode 100644
index 0000000000000000000000000000000000000000..1b2f61d94cf3a2203a9a97a6202a11396094c1ec
--- /dev/null
+++ b/VectoCore/Models/SimulationComponent/ICombustionEngineIdleController.cs
@@ -0,0 +1,10 @@
+using TUGraz.VectoCore.Models.Connector.Ports;
+using TUGraz.VectoCore.Models.SimulationComponent.Impl;
+
+namespace TUGraz.VectoCore.Models.SimulationComponent
+{
+	public interface ICombustionEngineIdleController : ITnOutPort
+	{
+		void SetRequestPort(ITnOutPort tnOutPort);
+	}
+}
\ No newline at end of file
diff --git a/VectoCore/Models/SimulationComponent/Impl/Brakes.cs b/VectoCore/Models/SimulationComponent/Impl/Brakes.cs
index d37861b0e38e2d99950e0912e2008a38d299cf43..acaba8dbfcff514bf2c279d2b3d063064c664e39 100644
--- a/VectoCore/Models/SimulationComponent/Impl/Brakes.cs
+++ b/VectoCore/Models/SimulationComponent/Impl/Brakes.cs
@@ -34,7 +34,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 				if (angularVelocity.IsEqual(0)) {
 					BreakTorque = torque;
 				} else {
-					BreakTorque = Formulas.PowerToTorque(BreakPower, angularVelocity);
+					BreakTorque = BreakPower / angularVelocity;
 				}
 			}
 			if (!dryRun && BreakPower < 0) {
diff --git a/VectoCore/Models/SimulationComponent/Impl/Clutch.cs b/VectoCore/Models/SimulationComponent/Impl/Clutch.cs
index 364cc85f2a1c17bf83b64ec785a7ecc684c4c51c..14661335e7c93c7d45f5a101e23034d4a68b2076 100644
--- a/VectoCore/Models/SimulationComponent/Impl/Clutch.cs
+++ b/VectoCore/Models/SimulationComponent/Impl/Clutch.cs
@@ -17,12 +17,16 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 		private const double ClutchEff = 1;
 		private ClutchState _clutchState = SimulationComponent.ClutchState.ClutchSlipping;
 
+		protected ICombustionEngineIdleController IdleController;
 
-		public Clutch(IVehicleContainer cockpit, CombustionEngineData engineData)
+
+		public Clutch(IVehicleContainer cockpit, CombustionEngineData engineData,
+			ICombustionEngineIdleController idleController)
 			: base(cockpit)
 		{
 			_idleSpeed = engineData.IdleSpeed;
 			_ratedSpeed = engineData.FullLoadCurve.RatedSpeed;
+			IdleController = idleController;
 		}
 
 		public ClutchState State()
@@ -56,7 +60,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 		public IResponse Request(Second absTime, Second dt, NewtonMeter torque, PerSecond angularVelocity, bool dryRun = false)
 		{
 			if (angularVelocity == null) {
-				var retval = NextComponent.Request(absTime, dt, torque, null, dryRun);
+				//var retval = NextComponent.Request(absTime, dt, torque, null, dryRun);
+				var retval = IdleController.Request(absTime, dt, torque, null, dryRun);
 				retval.ClutchPowerRequest = 0.SI<Watt>();
 				return retval;
 			}
diff --git a/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs b/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs
index e6860d90d8cfd6b1a7db30ae404cb0357c5ba4d6..f9e1ef202791d7a68e3eddbdf26cd3d00ae6b711 100644
--- a/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs
+++ b/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs
@@ -79,6 +79,13 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 			get { return Data.FullLoadCurve.RatedSpeed; }
 		}
 
+		public ICombustionEngineIdleController GetIdleController()
+		{
+			return IdleController ?? new CombustionEngineIdleController(this);
+		}
+
+		protected CombustionEngineIdleController IdleController { get; set; }
+
 		#endregion
 
 		#region ITnOutProvider
@@ -450,6 +457,32 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 
 		#endregion
 
-		public class CombustionEngineIdleController {}
+		protected class CombustionEngineIdleController : ICombustionEngineIdleController
+		{
+			protected CombustionEngine Engine;
+
+			protected ITnOutPort OutPort;
+
+			public CombustionEngineIdleController(CombustionEngine combustionEngine)
+			{
+				Engine = combustionEngine;
+			}
+
+			public void SetRequestPort(ITnOutPort tnOutPort)
+			{
+				OutPort = tnOutPort;
+			}
+
+			public IResponse Request(Second absTime, Second dt, NewtonMeter torque, PerSecond angularVelocity,
+				bool dryRun = false)
+			{
+				throw new NotImplementedException();
+			}
+
+			public IResponse Initialize(NewtonMeter torque, PerSecond angularVelocity)
+			{
+				return new ResponseSuccess() { Source = this };
+			}
+		}
 	}
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCore.csproj b/VectoCore/VectoCore.csproj
index 2505b4398f5cac850be9a3de0186db4cb98b2869..cdc012fe680190d06d7bcdee22dfc351594fed9f 100644
--- a/VectoCore/VectoCore.csproj
+++ b/VectoCore/VectoCore.csproj
@@ -155,6 +155,7 @@
     <Compile Include="Models\SimulationComponent\Data\GearboxType.cs" />
     <Compile Include="Models\SimulationComponent\IAuxiliary.cs" />
     <Compile Include="Models\SimulationComponent\IBrakes.cs" />
+    <Compile Include="Models\SimulationComponent\ICombustionEngineIdleController.cs" />
     <Compile Include="Models\SimulationComponent\IDriverActions.cs" />
     <Compile Include="Models\SimulationComponent\IDriverStrategy.cs" />
     <Compile Include="Models\SimulationComponent\IDrivingCycleInfo.cs" />
diff --git a/VectoCoreTest/Integration/CoachPowerTrain.cs b/VectoCoreTest/Integration/CoachPowerTrain.cs
index 24a7ef13c7fcaca364b26f79132c3072687993f9..003829bcd263553e47a2e77450cf3261518c0f1b 100644
--- a/VectoCoreTest/Integration/CoachPowerTrain.cs
+++ b/VectoCoreTest/Integration/CoachPowerTrain.cs
@@ -48,6 +48,7 @@ namespace TUGraz.VectoCore.Tests.Integration
 			var vehicleData = CreateVehicleData(3300.SI<Kilogram>());
 			var driverData = CreateDriverData(AccelerationFile);
 
+			var engine = new CombustionEngine(container, engineData);
 			var cycle = new DistanceBasedDrivingCycle(container, cycleData);
 			dynamic tmp = Port.AddComponent(cycle, new Driver(container, driverData, new DefaultDriverStrategy()));
 			tmp = Port.AddComponent(tmp, new Vehicle(container, vehicleData));
@@ -55,14 +56,14 @@ namespace TUGraz.VectoCore.Tests.Integration
 			tmp = Port.AddComponent(tmp, new Brakes(container));
 			tmp = Port.AddComponent(tmp, new AxleGear(container, axleGearData));
 			tmp = Port.AddComponent(tmp, new Gearbox(container, gearboxData, new AMTShiftStrategy(gearboxData, container)));
-			tmp = Port.AddComponent(tmp, new Clutch(container, engineData));
+			tmp = Port.AddComponent(tmp, new Clutch(container, engineData, engine.GetIdleController()));
 
 			var aux = new Auxiliary(container);
 			aux.AddConstant("", 0.SI<Watt>());
 
 			tmp = Port.AddComponent(tmp, aux);
 
-			Port.AddComponent(tmp, new CombustionEngine(container, engineData));
+			Port.AddComponent(tmp, engine);
 
 			return container;
 		}
diff --git a/VectoCoreTest/Integration/EngineOnlyCycle/EngineOnlyCycleTest.cs b/VectoCoreTest/Integration/EngineOnlyCycle/EngineOnlyCycleTest.cs
index 86d87d34843abb7259359d3f3d98cc87747a93f1..751d0df538444d9f95af24050889f3f50c47183b 100644
--- a/VectoCoreTest/Integration/EngineOnlyCycle/EngineOnlyCycleTest.cs
+++ b/VectoCoreTest/Integration/EngineOnlyCycle/EngineOnlyCycleTest.cs
@@ -82,7 +82,7 @@ namespace TUGraz.VectoCore.Tests.Integration.EngineOnlyCycle
 			var angularVelocity = 644.4445.RPMtoRad();
 			var power = 2329.973.SI<Watt>();
 
-			gearbox.OutPort().Request(absTime, dt, Formulas.PowerToTorque(power, angularVelocity), angularVelocity);
+			gearbox.OutPort().Request(absTime, dt, power / angularVelocity, angularVelocity);
 
 			foreach (var sc in vehicleContainer.SimulationComponents()) {
 				sc.CommitSimulationStep(dataWriter);
diff --git a/VectoCoreTest/Integration/SimulationRuns/FullPowertrain.cs b/VectoCoreTest/Integration/SimulationRuns/FullPowertrain.cs
index 8aa3661f5ab9744ac354cc6aa44368c3280f9a29..4784c93be460a336b49769e76c00ef394a1c2e3b 100644
--- a/VectoCoreTest/Integration/SimulationRuns/FullPowertrain.cs
+++ b/VectoCoreTest/Integration/SimulationRuns/FullPowertrain.cs
@@ -58,8 +58,9 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns
 			tmp = Port.AddComponent(tmp, new AxleGear(container, axleGearData));
 			var gbx = new Gearbox(container, gearboxData, new AMTShiftStrategy(gearboxData, container));
 			tmp = Port.AddComponent(tmp, gbx);
-			tmp = Port.AddComponent(tmp, new Clutch(container, engineData));
-			Port.AddComponent(tmp, new CombustionEngine(container, engineData));
+			var engine = new CombustionEngine(container, engineData);
+			tmp = Port.AddComponent(tmp, new Clutch(container, engineData, engine.GetIdleController()));
+			Port.AddComponent(tmp, engine);
 
 			cyclePort.Initialize();
 
@@ -114,8 +115,9 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns
 			tmp = Port.AddComponent(tmp, new AxleGear(container, axleGearData));
 			var gbx = new Gearbox(container, gearboxData, new AMTShiftStrategy(gearboxData, container));
 			tmp = Port.AddComponent(tmp, gbx);
-			tmp = Port.AddComponent(tmp, new Clutch(container, engineData));
-			Port.AddComponent(tmp, new CombustionEngine(container, engineData));
+			var engine = new CombustionEngine(container, engineData);
+			tmp = Port.AddComponent(tmp, new Clutch(container, engineData, engine.GetIdleController()));
+			Port.AddComponent(tmp, engine);
 
 			cyclePort.Initialize();
 
@@ -186,8 +188,9 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns
 			tmp = Port.AddComponent(tmp, new Brakes(container));
 			tmp = Port.AddComponent(tmp, new AxleGear(container, axleGearData));
 			tmp = Port.AddComponent(tmp, new Gearbox(container, gearboxData, new AMTShiftStrategy(gearboxData, container)));
-			tmp = Port.AddComponent(tmp, new Clutch(container, engineData));
-			Port.AddComponent(tmp, new CombustionEngine(container, engineData));
+			var engine = new CombustionEngine(container, engineData);
+			tmp = Port.AddComponent(tmp, new Clutch(container, engineData, engine.GetIdleController()));
+			Port.AddComponent(tmp, engine);
 
 			cyclePort.Initialize();
 
diff --git a/VectoCoreTest/Integration/SimulationRuns/MinimalPowertrain.cs b/VectoCoreTest/Integration/SimulationRuns/MinimalPowertrain.cs
index e2f6627baf744eba6b276c10b443ed2c73320770..b59165ec3e5743377933c0cba0bb8cdd90fee5ae 100644
--- a/VectoCoreTest/Integration/SimulationRuns/MinimalPowertrain.cs
+++ b/VectoCoreTest/Integration/SimulationRuns/MinimalPowertrain.cs
@@ -53,8 +53,8 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns
 			tmp = Port.AddComponent(tmp, new Wheels(vehicleContainer, vehicleData.DynamicTyreRadius));
 			tmp = Port.AddComponent(tmp, new AxleGear(vehicleContainer, axleGearData));
 
-			tmp = Port.AddComponent(tmp, new Clutch(vehicleContainer, engineData));
 			var engine = new CombustionEngine(vehicleContainer, engineData);
+			tmp = Port.AddComponent(tmp, new Clutch(vehicleContainer, engineData, engine.GetIdleController()));
 			Port.AddComponent(tmp, engine);
 
 			var gbx = new MockGearbox(vehicleContainer);
@@ -104,8 +104,9 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns
 			tmp = Port.AddComponent(tmp, new Wheels(vehicleContainer, vehicleData.DynamicTyreRadius));
 			tmp = Port.AddComponent(tmp, new Brakes(vehicleContainer));
 			tmp = Port.AddComponent(tmp, new AxleGear(vehicleContainer, axleGearData));
-			tmp = Port.AddComponent(tmp, new Clutch(vehicleContainer, engineData));
-			Port.AddComponent(tmp, new CombustionEngine(vehicleContainer, engineData));
+			var engine = new CombustionEngine(vehicleContainer, engineData);
+			tmp = Port.AddComponent(tmp, new Clutch(vehicleContainer, engineData, engine.GetIdleController()));
+			Port.AddComponent(tmp, engine);
 
 			var gbx = new MockGearbox(vehicleContainer);
 
@@ -173,8 +174,9 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns
 			tmp = Port.AddComponent(tmp, new Wheels(vehicleContainer, vehicleData.DynamicTyreRadius));
 			tmp = Port.AddComponent(tmp, new Brakes(vehicleContainer));
 			tmp = Port.AddComponent(tmp, new AxleGear(vehicleContainer, axleGearData));
-			tmp = Port.AddComponent(tmp, new Clutch(vehicleContainer, engineData));
-			Port.AddComponent(tmp, new CombustionEngine(vehicleContainer, engineData));
+			var engine = new CombustionEngine(vehicleContainer, engineData);
+			tmp = Port.AddComponent(tmp, new Clutch(vehicleContainer, engineData, engine.GetIdleController()));
+			Port.AddComponent(tmp, engine);
 
 			var gbx = new MockGearbox(vehicleContainer);
 
diff --git a/VectoCoreTest/Integration/Truck40tPowerTrain.cs b/VectoCoreTest/Integration/Truck40tPowerTrain.cs
index a84ce2cfbf9d1dab3d4564c897ff34ce2b65780d..d0cf2c748b7b9273fdaeae291970cf8e6db54d8e 100644
--- a/VectoCoreTest/Integration/Truck40tPowerTrain.cs
+++ b/VectoCoreTest/Integration/Truck40tPowerTrain.cs
@@ -55,6 +55,7 @@ namespace TUGraz.VectoCore.Tests.Integration
 			var vehicleData = CreateVehicleData(massExtra, loading);
 			var driverData = CreateDriverData(AccelerationFile);
 
+			var engine = new CombustionEngine(container, engineData);
 			var cycle = new DistanceBasedDrivingCycle(container, cycleData);
 			dynamic tmp = Port.AddComponent(cycle, new Driver(container, driverData, new DefaultDriverStrategy()));
 			tmp = Port.AddComponent(tmp, new Vehicle(container, vehicleData));
@@ -62,14 +63,16 @@ namespace TUGraz.VectoCore.Tests.Integration
 			tmp = Port.AddComponent(tmp, new Brakes(container));
 			tmp = Port.AddComponent(tmp, new AxleGear(container, axleGearData));
 			tmp = Port.AddComponent(tmp, new Gearbox(container, gearboxData, new AMTShiftStrategy(gearboxData, container)));
-			tmp = Port.AddComponent(tmp, new Clutch(container, engineData));
+			var clutch = new Clutch(container, engineData, engine.GetIdleController());
+			engine.GetIdleController().SetRequestPort(clutch);
+			tmp = Port.AddComponent(tmp, clutch);
 
 			var aux = new Auxiliary(container);
 			aux.AddConstant("", 0.SI<Watt>());
 
 			tmp = Port.AddComponent(tmp, aux);
 
-			Port.AddComponent(tmp, new CombustionEngine(container, engineData));
+			Port.AddComponent(tmp, engine);
 
 			return container;
 		}
diff --git a/VectoCoreTest/Models/Simulation/DrivingCycleTests.cs b/VectoCoreTest/Models/Simulation/DrivingCycleTests.cs
index 096a973318fa03dface2330f564496d99e8abb98..24092823959b61078fb8bc8fbb229736a2c89463 100644
--- a/VectoCoreTest/Models/Simulation/DrivingCycleTests.cs
+++ b/VectoCoreTest/Models/Simulation/DrivingCycleTests.cs
@@ -74,7 +74,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
 			Assert.AreEqual(absTime, outPort.AbsTime);
 			Assert.AreEqual(dt, outPort.Dt);
 			Assert.AreEqual(743.2361.RPMtoRad(), outPort.AngularVelocity);
-			Assert.AreEqual(Formulas.PowerToTorque(2779.576.SI<Watt>(), 743.2361.RPMtoRad()), outPort.Torque);
+			Assert.AreEqual(2779.576.SI<Watt>() / 743.2361.RPMtoRad(), outPort.Torque);
 
 			// ========================
 
@@ -95,7 +95,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
 				Assert.AreEqual(absTime, outPort.AbsTime);
 				Assert.AreEqual(dt, outPort.Dt);
 				Assert.AreEqual(1584.731.RPMtoRad(), outPort.AngularVelocity);
-				Assert.AreEqual(Formulas.PowerToTorque(3380.548.SI<Watt>(), 1584.731.RPMtoRad()), outPort.Torque);
+				Assert.AreEqual(3380.548.SI<Watt>() / 1584.731.RPMtoRad(), outPort.Torque);
 
 				absTime += dt;
 			}
diff --git a/VectoCoreTest/Models/SimulationComponent/ClutchTest.cs b/VectoCoreTest/Models/SimulationComponent/ClutchTest.cs
index bc726dae75fc21a0da603f167cedb48666442df3..88877f8ffa35350c357ff417891cc4367b3e1a4c 100644
--- a/VectoCoreTest/Models/SimulationComponent/ClutchTest.cs
+++ b/VectoCoreTest/Models/SimulationComponent/ClutchTest.cs
@@ -22,7 +22,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 			var engineData = EngineeringModeSimulationDataReader.CreateEngineDataFromFile(CoachEngine);
 			var gearbox = new MockGearbox(container);
 
-			var clutch = new Clutch(container, engineData);
+			var clutch = new Clutch(container, engineData, null);
 
 			var inPort = clutch.InPort();
 			var outPort = new MockTnOutPort();
diff --git a/VectoCoreTest/Models/SimulationComponent/CombustionEngineTest.cs b/VectoCoreTest/Models/SimulationComponent/CombustionEngineTest.cs
index 1127b0d6a83c60274652c5d66b0a11e44eff1dfd..671e92727f4e3923def0909dbcf827a1ae10782f 100644
--- a/VectoCoreTest/Models/SimulationComponent/CombustionEngineTest.cs
+++ b/VectoCoreTest/Models/SimulationComponent/CombustionEngineTest.cs
@@ -206,7 +206,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 			var engineData = EngineeringModeSimulationDataReader.CreateEngineDataFromFile(CoachEngine);
 			var engine = new CombustionEngine(container, engineData);
 
-			var clutch = new Clutch(container, engineData);
+			var clutch = new Clutch(container, engineData, engine.GetIdleController());
 
 			var driver = new MockDriver(container);
 
diff --git a/VectoCoreTest/Models/SimulationComponent/DriverTest.cs b/VectoCoreTest/Models/SimulationComponent/DriverTest.cs
index 204c9bfed698e88a0e5cc65fe3e52104491a1a63..0857517930696ad307727a1e63f7dc2a93ae3990 100644
--- a/VectoCoreTest/Models/SimulationComponent/DriverTest.cs
+++ b/VectoCoreTest/Models/SimulationComponent/DriverTest.cs
@@ -50,7 +50,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 
 			dynamic tmp = AddComponent(driver, new Vehicle(vehicleContainer, vehicleData));
 			tmp = AddComponent(tmp, new Wheels(vehicleContainer, vehicleData.DynamicTyreRadius));
-			tmp = AddComponent(tmp, new Clutch(vehicleContainer, engineData));
+			tmp = AddComponent(tmp, new Clutch(vehicleContainer, engineData, engine.GetIdleController()));
 			AddComponent(tmp, engine);
 
 			var gbx = new MockGearbox(vehicleContainer) { Gear = 1 };
@@ -105,7 +105,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 
 			dynamic tmp = AddComponent(driver, new Vehicle(vehicleContainer, vehicleData));
 			tmp = AddComponent(tmp, new Wheels(vehicleContainer, vehicleData.DynamicTyreRadius));
-			tmp = AddComponent(tmp, new Clutch(vehicleContainer, engineData));
+			tmp = AddComponent(tmp, new Clutch(vehicleContainer, engineData, engine.GetIdleController()));
 			AddComponent(tmp, engine);
 
 			var gbx = new MockGearbox(vehicleContainer);
@@ -163,8 +163,9 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 
 			dynamic tmp = AddComponent(driver, new Vehicle(vehicleContainer, vehicleData));
 			tmp = AddComponent(tmp, new Wheels(vehicleContainer, vehicleData.DynamicTyreRadius));
-			tmp = AddComponent(tmp, new Clutch(vehicleContainer, engineData));
-			AddComponent(tmp, new CombustionEngine(vehicleContainer, engineData));
+			var engine = new CombustionEngine(vehicleContainer, engineData);
+			tmp = AddComponent(tmp, new Clutch(vehicleContainer, engineData, engine.GetIdleController()));
+			AddComponent(tmp, engine);
 
 			var gbx = new MockGearbox(vehicleContainer);