diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Gearbox.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Gearbox.cs
index e56011adb5e9ec343c378dc355b50c378bb6d87b..d0f4149f609eac9344d8677eb357300ee6fb5b16 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Gearbox.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Gearbox.cs
@@ -229,6 +229,19 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 			if (DataBus.VehicleStopped) {
 				_engageTime = absTime;
 			}
+			if (DataBus.DriverBehavior == DrivingBehavior.Halted) {
+				_engageTime = absTime + dt;
+			}
+
+			var engineSpeedNorm = (angularVelocity - DataBus.EngineIdleSpeed) /
+								(DataBus.EngineRatedSpeed - DataBus.EngineIdleSpeed);
+			if (DataBus.DriverBehavior == DrivingBehavior.Braking && DataBus.BrakePower.IsGreater(0.SI<Watt>()) &&
+				engineSpeedNorm < Constants.SimulationSettings.ClutchClosingSpeedNorm &&
+				DataBus.VehicleSpeed.IsSmaller(15.KMPHtoMeterPerSecond())) {
+				_engageTime = absTime + dt;
+				Disengaged = true;
+				return RequestGearDisengaged(absTime, dt, torque, angularVelocity, dryRun);
+			}
 
 			IResponse retVal;
 			// TODO MQ 2016/03/10: investigate further the effects of having the condition angularvelocity != 0