diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Driver.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Driver.cs
index 79ed9f108a9aca7b6b6f03a73c7ba9568c565538..96f5f0d041a273e9580ee2348672e01cd2602afb 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Driver.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Driver.cs
@@ -519,17 +519,20 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 				Case<ResponseOverload>(r => {
 					if (DataBus.GearboxType.AutomaticTransmission()) {
 						// overload may happen because of gearshift between search and actual request, search again
-						DataBus.BrakePower = 0.SI<Watt>();
-						operatingPoint = SearchBrakingPower(absTime, operatingPoint.SimulationDistance, gradient,
-							operatingPoint.Acceleration, response);
-						DriverAcceleration = operatingPoint.Acceleration;
-						if (DataBus.BrakePower.IsSmaller(0)) {
+						var i = 5;
+						while (i-- > 0 && !(retVal is ResponseSuccess)) {
 							DataBus.BrakePower = 0.SI<Watt>();
+							operatingPoint = SearchBrakingPower(absTime, operatingPoint.SimulationDistance, gradient,
+								operatingPoint.Acceleration, response);
+							DriverAcceleration = operatingPoint.Acceleration;
+							if (DataBus.BrakePower.IsSmaller(0)) {
+								DataBus.BrakePower = 0.SI<Watt>();
 
-							operatingPoint = SearchOperatingPoint(absTime, ds, gradient, 0.SI<MeterPerSquareSecond>(), r);
+								operatingPoint = SearchOperatingPoint(absTime, ds, gradient, 0.SI<MeterPerSquareSecond>(), r);
+							}
+							retVal = NextComponent.Request(absTime, operatingPoint.SimulationInterval,
+								operatingPoint.Acceleration, gradient);
 						}
-						retVal = NextComponent.Request(absTime, operatingPoint.SimulationInterval,
-							operatingPoint.Acceleration, gradient);
 					} else {
 						throw new UnexpectedResponseException(
 							"DrivingAction Brake: request failed after braking power was found.", r);
diff --git a/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs b/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs
index 8b6cac9032714a18ea5d7f206a8d9383b2f33609..8830dd9c9593f5729e5cc322a6632b1d6b223d0b 100644
--- a/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs
+++ b/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs
@@ -236,12 +236,23 @@ namespace TUGraz.VectoCore.OutputData
 				row[CD_x_A] = runData.VehicleData.CrossWindCorrectionCurve.AirDragArea;
 				row[ROLLING_RESISTANCE_COEFFICIENT] = runData.VehicleData.TotalRollResistanceCoefficient.SI<Scalar>();
 				row[TRANSMISSION_TYPE] = runData.GearboxData.Type;
-				row[GEAR_RATIO_FIRST_GEAR] = runData.GearboxData.Gears.Count > 0
-					? runData.GearboxData.Gears.First().Value.Ratio.SI<Scalar>()
-					: 0.SI<Scalar>();
-				row[GEAR_RATIO_LAST_GEAR] = runData.GearboxData.Gears.Count > 0
-					? runData.GearboxData.Gears.Last().Value.Ratio.SI<Scalar>()
-					: 0.SI<Scalar>();
+				if (runData.GearboxData.Type.AutomaticTransmission()) {
+					row[GEAR_RATIO_FIRST_GEAR] = runData.GearboxData.Gears.Count > 0
+						? (double.IsNaN(runData.GearboxData.Gears.First().Value.Ratio)
+							? runData.GearboxData.Gears.First().Value.TorqueConverterRatio.SI<Scalar>()
+							: runData.GearboxData.Gears.First().Value.Ratio.SI<Scalar>())
+						: 0.SI<Scalar>();
+					row[GEAR_RATIO_LAST_GEAR] = runData.GearboxData.Gears.Count > 0
+						? runData.GearboxData.Gears.Last().Value.Ratio.SI<Scalar>()
+						: 0.SI<Scalar>();
+				} else {
+					row[GEAR_RATIO_FIRST_GEAR] = runData.GearboxData.Gears.Count > 0
+						? runData.GearboxData.Gears.First().Value.Ratio.SI<Scalar>()
+						: 0.SI<Scalar>();
+					row[GEAR_RATIO_LAST_GEAR] = runData.GearboxData.Gears.Count > 0
+						? runData.GearboxData.Gears.Last().Value.Ratio.SI<Scalar>()
+						: 0.SI<Scalar>();
+				}
 				row[AXLE_GEAR_RATIO] = runData.AxleGearData.AxleGear.Ratio.SI<Scalar>();
 				row[R_DYN] = runData.VehicleData.DynamicTyreRadius;
 				row[RETARDER_TYPE] = runData.Retarder.Type;