diff --git a/VECTO/GUI/VehicleForm.vb b/VECTO/GUI/VehicleForm.vb
index 2b0f9763217a2423621d6d3cf2a1a9d440f5d394..671152777634fd165c8c73f2dae879ae910cb0a6 100644
--- a/VECTO/GUI/VehicleForm.vb
+++ b/VECTO/GUI/VehicleForm.vb
@@ -122,7 +122,8 @@ Public Class VehicleForm
 		_changed = False
 
 		cbEmPos.DataSource = EnumHelper.GetKeyValuePairs(Of PowertrainPosition)(Function(t) t.GetLabel(),
-																				Function(x) x <> PowertrainPosition.GEN)
+																				Function(x) x <> PowertrainPosition.GEN _
+																					AndAlso x <> PowertrainPosition.HybridP0)
 
 		NewVehicle()
 	End Sub
diff --git a/VectoCommon/VectoCommon/Models/PowertrainPosition.cs b/VectoCommon/VectoCommon/Models/PowertrainPosition.cs
index ae6edc8132e74b590969357b163d036327ac9377..8cbc8af4677028e516c70a5a6385b804364c2e5a 100644
--- a/VectoCommon/VectoCommon/Models/PowertrainPosition.cs
+++ b/VectoCommon/VectoCommon/Models/PowertrainPosition.cs
@@ -72,14 +72,20 @@ namespace TUGraz.VectoCommon.InputData
 
 		public static bool IsBatteryElectric(this PowertrainPosition pos)
 		{
-			return pos == PowertrainPosition.BatteryElectricE2 || pos == PowertrainPosition.BatteryElectricE3 ||
-					pos == PowertrainPosition.BatteryElectricE4;
+			switch (pos) {
+				case PowertrainPosition.BatteryElectricE2:
+				case PowertrainPosition.BatteryElectricE3:
+				case PowertrainPosition.BatteryElectricE4:
+					return true;
+				default:
+					return false;
+			}
 		}
 
 		public static bool IsParallelHybrid(this PowertrainPosition pos)
 		{
 			switch (pos) {
-				case PowertrainPosition.HybridP0:
+				//case PowertrainPosition.HybridP0: // special case currently modelled in BusAuxiliary as SmartAlternator.
 				case PowertrainPosition.HybridP1:
 				case PowertrainPosition.HybridP2:
 				case PowertrainPosition.HybridP2_5:
diff --git a/VectoCore/VectoCore/Models/Simulation/Data/VectoRunData.cs b/VectoCore/VectoCore/Models/Simulation/Data/VectoRunData.cs
index bb57cfc4460acb55eeca049457e81f636147ab82..14e0216082301ea06f305e2be208d0d3813f34c9 100644
--- a/VectoCore/VectoCore/Models/Simulation/Data/VectoRunData.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Data/VectoRunData.cs
@@ -235,6 +235,10 @@ namespace TUGraz.VectoCore.Models.Simulation.Data
 				}
 			}
 
+			if (runData.ElectricMachinesData?.Any(e => e.Item1 == PowertrainPosition.HybridP0) ?? false){
+				return new ValidationResult("P0 Hybrids are modeled as SmartAlternator in the BusAuxiliary model.");
+			}
+
 			return ValidationResult.Success;
 		}
 
diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs b/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs
index 96e80a328e1c6fc34a35d7c6e0fc92751502517c..719309b25a5bd78db4a083b723420cffeb17f803 100644
--- a/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs
@@ -412,6 +412,9 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 			if (data.ElectricMachinesData.Count != 1) {
 				throw new VectoException("ParallelHybrid needs exactly one electric motor.");
 			}
+			if (data.ElectricMachinesData.Any(e => e.Item1 == PowertrainPosition.HybridP0)) {
+				throw new VectoException("P0 Hybrids are modeled as SmartAlternator in the BusAuxiliary model.");
+			}
 
 			var container = new VehicleContainer(data.ExecutionMode, _modData, _sumWriter) { RunData = data };
 			var es = ConnectREESS(data, container);
@@ -665,7 +668,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 			if (data.ElectricMachinesData.Count != 1) {
 				throw new VectoException("Battery electric vehicle needs exactly one electric motor.");
 			}
-
+			
 			var container = new VehicleContainer(data.ExecutionMode, _modData, _sumWriter) { RunData = data };
 			var es = ConnectREESS(data, container);
 
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/TorqueConverter.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/TorqueConverter.cs
index 1008e5710834063b6f7a61b844bca297a81a22a2..54955db39f6ae5d4f853fbce13c490398f3040a3 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/TorqueConverter.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/TorqueConverter.cs
@@ -82,8 +82,12 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 			if (operatingPointList.Count > 0) {
 				operatingPoint = SelectOperatingPoint(operatingPointList);
 			} else {
-				Log.Warn(
-					"TorqueConverter Initialize: No operating point found. Using output as input values as fallback for initialize.");
+				if (outTorque.IsEqual(0) && outAngularVelocity.IsEqual(0)) {
+					Log.Info("TorqueConverter Initialize: No operating point found. Using output as input values as fallback for initialize.");
+				}
+				else {
+					Log.Warn("TorqueConverter Initialize: No operating point found. Using output as input values as fallback for initialize.");
+				}
 				var inAngularVelocity = outAngularVelocity.LimitTo(DataBus.EngineInfo.EngineIdleSpeed, DataBus.EngineInfo.EngineN95hSpeed);
 				operatingPoint = new TorqueConverterOperatingPoint {
 					OutAngularVelocity = outAngularVelocity,
diff --git a/VectoCore/VectoCore/OutputData/FileIO/JSONFileWriter.cs b/VectoCore/VectoCore/OutputData/FileIO/JSONFileWriter.cs
index 7f184f692a90c50aaa16230ab24c60c0565a9692..d3d1e1f2871e74d26b87b45f9eba681b29515ed4 100644
--- a/VectoCore/VectoCore/OutputData/FileIO/JSONFileWriter.cs
+++ b/VectoCore/VectoCore/OutputData/FileIO/JSONFileWriter.cs
@@ -260,7 +260,7 @@ public class JSONFileWriter : IOutputFileWriter
 		body.Add(JsonKeys.Gearbox_GearboxType, gbx.Type.ToString());
 
 		var torqueConverterDict = new Dictionary<string, object> { { "Enabled", torqueConverter != null && gbx.Type.AutomaticTransmission() } };
-		if (gbx.Type.AutomaticTransmission() && torqueConverter != null) {
+		if (gbx.Type.AutomaticTransmission() && gbx.Type != GearboxType.APTN) {
 			torqueConverterDict.Add("File", GetRelativePath(torqueConverter.TCData.Source, Path.GetDirectoryName(filename)));
 			torqueConverterDict.Add(JsonKeys.Gearbox_TorqueConverter_ReferenceRPM, Math.Round(torqueConverter.ReferenceRPM.AsRPM, 4));
 			torqueConverterDict.Add(JsonKeys.Gearbox_TorqueConverter_Inertia, torqueConverter.Inertia.Value());