diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs
index 5924a4b9d723000d580c371328cd700925bf3245..61711e1856721dbaa368dae5ee8d2dfc1b99526b 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs
@@ -1337,7 +1337,10 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 		{
 			get
 			{
-				return ElementExists(new [] {XMLNames.Component_Vehicle, XMLNames.Component_Model})
+				if (BaseNode.LocalName == XMLNames.Component_Vehicle) {
+					return BaseNode.SelectSingleNode($"./*[local-name()='{XMLNames.Component_Model}']")?.InnerText;
+				}
+				return ElementExists(new [] { XMLNames.Component_Vehicle, XMLNames.Component_Model})
 					? GetString(new[] { XMLNames.Component_Vehicle, XMLNames.Component_Model }) : null;
 			}
 		}
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataMultistageV01InjectModule.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataMultistageV01InjectModule.cs
index aabae6c80c9e0cf060286df8a7516d4aea16478a..8f61766998e747ae0ca2b542dbf3a8f650fe4b6e 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataMultistageV01InjectModule.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataMultistageV01InjectModule.cs
@@ -39,10 +39,10 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.NinjectModules
 			Bind<IXMLPrimaryVehicleBusJobInputData>().To<XMLDeclarationMultistagePrimaryVehicleBusJobInputDataProviderV01>()
 				.Named(XMLDeclarationMultistagePrimaryVehicleBusJobInputDataProviderV01.QUALIFIED_XSD_TYPE);
 
-			Bind<IXMLPrimaryVehicleBusJobInputData>().To<XMLDeclarationMultistageExemptedPrimaryVehicleBusJobInputDataProviderV01>()
-				.Named(XMLDeclarationMultistageExemptedPrimaryVehicleBusJobInputDataProviderV01.QUALIFIED_XSD_TYPE);
+            Bind<IXMLPrimaryVehicleBusJobInputData>().To<XMLDeclarationMultistageExemptedPrimaryVehicleBusJobInputDataProviderV01>()
+                .Named(XMLDeclarationMultistageExemptedPrimaryVehicleBusJobInputDataProviderV01.QUALIFIED_XSD_TYPE);
 
-			Bind<IXMLJobDataReader>().To<XMLJobDataMultistagePrimaryVehicleReaderV01>()
+            Bind<IXMLJobDataReader>().To<XMLJobDataMultistagePrimaryVehicleReaderV01>()
 				.Named(XMLJobDataMultistagePrimaryVehicleReaderV01.QUALIFIED_XSD_TYPE);
 
 			Bind<IXMLJobDataReader>().To<XMLJobDataMultistageExemptedPrimaryVehicleReaderV01>()
diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeMultistageBusVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeMultistageBusVectoRunDataFactory.cs
index 45a69fd65b749930a2c871025d6ff9761ddfaa67..c2c3e20b12a7ccff214dbb7455b067ca4042f1d7 100644
--- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeMultistageBusVectoRunDataFactory.cs
+++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeMultistageBusVectoRunDataFactory.cs
@@ -26,15 +26,17 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 		{
 			return new VectoRunData
 			{
-				Exempted = true,
+				Exempted = InputDataProvider.MultistageJobInputData.JobInputData.PrimaryVehicle.Vehicle.ExemptedVehicle,
+				MultistageRun = true,
+				ExecutionMode = ExecutionMode.Declaration,
 				Report = Report,
 				Mission = new Mission { MissionType = MissionType.ExemptedMission },
-				VehicleData = CreateExemptedVehicleData(InputDataProvider.MultistageJobInputData.JobInputData.PrimaryVehicle.Vehicle),
+				VehicleData = CreateVehicleData(InputDataProvider.MultistageJobInputData.JobInputData.PrimaryVehicle.Vehicle),
 				MultistageVIFInputData = InputDataProvider
 			};
 		}
 		
-		private VehicleData CreateExemptedVehicleData(IVehicleDeclarationInputData data)
+		private VehicleData CreateVehicleData(IVehicleDeclarationInputData data)
 		{
 			var exempted = SetCommonVehicleData(data);
 			exempted.VIN = data.VIN;
diff --git a/VectoCore/VectoCore/Models/Simulation/Data/VectoRunData.cs b/VectoCore/VectoCore/Models/Simulation/Data/VectoRunData.cs
index 67b3aaaf5c4dff81638043a4449c823e18ec7180..40b12e257190b3b222d36c1197a140cd3d9f657d 100644
--- a/VectoCore/VectoCore/Models/Simulation/Data/VectoRunData.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Data/VectoRunData.cs
@@ -134,12 +134,14 @@ namespace TUGraz.VectoCore.Models.Simulation.Data
 		public SuperCapData SuperCapData { get; internal set; }
 
 
-		public SimulationType SimulationType { get; set; }
+		public SimulationType SimulationType { get; internal set; }
 
-		public VTPData VTPData { get; set; }
+		public VTPData VTPData { get; internal set; }
 
-		public ShiftStrategyParameters GearshiftParameters { get; set; }
-		public bool Exempted { get; set; }
+		public ShiftStrategyParameters GearshiftParameters { get; internal set; }
+		public bool Exempted { get; internal set; }
+
+		public bool MultistageRun { get; internal set; }
 
 		public IDrivingCycleData PTOCycleWhileDrive { get; internal set; }
 
diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/ExemptedRun.cs b/VectoCore/VectoCore/Models/Simulation/Impl/ExemptedRun.cs
index 7aeca33d1d57e26819b49dc3e7422bd6a4b679de..bcb975cebc62b91dedcbe1b892c70633f791dd18 100644
--- a/VectoCore/VectoCore/Models/Simulation/Impl/ExemptedRun.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Impl/ExemptedRun.cs
@@ -63,6 +63,9 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl {
 
 		private void CheckValidInput()
 		{
+			if (Container.RunData.MultistageRun) {
+				return;
+			}
 			var vehicleData = Container.RunData.VehicleData;
 			if (vehicleData.ZeroEmissionVehicle && vehicleData.DualFuelVehicle) {
 				throw new VectoException("Invalid input: ZE-HDV and DualFuelVehicle are mutually exclusive!");
diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs
index bddcacb7b1bd208134967d46255bbed923fd45c0..9b04c22a04eb836acd2ad06ac5e7047651e1a332 100644
--- a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs
@@ -214,7 +214,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 				var current = i++;
 				var d = data;
 				data.JobRunId = current;
-				yield return data.Exempted ? GetExemptedRun(data) : GetNonExemptedRun(data, current, d, ref warning1Hz);
+				yield return data.Exempted || data.MultistageRun ? GetExemptedRun(data) : GetNonExemptedRun(data, current, d, ref warning1Hz);
 			}
 		}
 
diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/VectoRun.cs b/VectoCore/VectoCore/Models/Simulation/Impl/VectoRun.cs
index b3b21458d2d3923b077c5c0b55d023cc46b4b419..a1dace17c611d2dbcb0df78805fbb9de4a5af885 100644
--- a/VectoCore/VectoCore/Models/Simulation/Impl/VectoRun.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Impl/VectoRun.cs
@@ -139,7 +139,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 						Container.AbsTime = AbsTime;
 					}
 				} while (response is ResponseSuccess);
-				if (!GetContainer().RunData.Exempted) {
+				if (!(GetContainer().RunData.Exempted || GetContainer().RunData.MultistageRun)) {
 					//foreach (var fuel in GetContainer().RunData.EngineData.Fuels) {
 						// calculate vehicleline correction here in local thread context because writing sum-data and report afterwards is synchronized
 						//var cf = GetContainer().ModalData.VehicleLineCorrectionFactor(fuel.FuelData);
@@ -186,7 +186,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 				throw ex;
 			}
 
-			Container.RunStatus = Container.RunData.Exempted
+			Container.RunStatus = Container.RunData.Exempted || Container.RunData.MultistageRun
 				? Status.Success
 				: CyclePort.Progress < 1
 					? (response is ResponseBatteryEmpty ? Status.REESSEmpty : Status.Aborted)