diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/AbstractSimulationDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/AbstractSimulationDataAdapter.cs
index 97a6e5c6950ff3f45e4985a581f84b197ce90916..0dd70cf75cdd0f058431b97364161a2a1578d2c0 100644
--- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/AbstractSimulationDataAdapter.cs
+++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/AbstractSimulationDataAdapter.cs
@@ -58,7 +58,6 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 				//CertificationNumber = data.CertificationNumber,
 				DigestValueInput = data.DigestValue != null ? data.DigestValue.DigestValue : "",
 				VehicleCategory = data.VehicleCategory,
-				AxleConfiguration = data.AxleConfiguration,
 				CurbWeight = data.CurbMassChassis,
 				GrossVehicleWeight = data.GrossVehicleMassRating,
 				AirDensity = Physics.AirDensity,
diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs
index 4d63d274f73340f70a75198c5775019255425beb..3bc0f5f6868fa9ce3b016550b1834b0e8a0c93b0 100644
--- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs
+++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs
@@ -85,17 +85,26 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 			if (!data.SavedInDeclarationMode) {
 				WarnDeclarationMode("VehicleData");
 			}
+			return data.ExemptedVehicle
+				? CreateExemptedVehicleData(data)
+				: CreateNonExemptedVehicleData(data, mission, loading, municipalBodyWeight);
+		}
 
+		private VehicleData CreateNonExemptedVehicleData(
+			IVehicleDeclarationInputData data, Mission mission, Kilogram loading, Kilogram municipalBodyWeight)
+		{
 			var retVal = SetCommonVehicleData(data);
+			retVal.AxleConfiguration = data.AxleConfiguration;
 			retVal.AirDensity = DeclarationData.AirDensity;
 			retVal.VIN = data.VIN;
 			retVal.ManufacturerAddress = data.ManufacturerAddress;
 			retVal.LegislativeClass = data.LegislativeClass;
+			retVal.ZeroEmissionVehicle = data.ZeroEmissionVehicle;
 			retVal.TrailerGrossVehicleWeight = mission.Trailer.Sum(t => t.TrailerGrossVehicleWeight).DefaultIfNull(0);
 
 			retVal.BodyAndTrailerWeight = (mission.MissionType == MissionType.MunicipalUtility
-				? municipalBodyWeight
-				: mission.BodyCurbWeight) + mission.Trailer.Sum(t => t.TrailerCurbWeight).DefaultIfNull(0);
+											? municipalBodyWeight
+											: mission.BodyCurbWeight) + mission.Trailer.Sum(t => t.TrailerCurbWeight).DefaultIfNull(0);
 
 			retVal.Loading = loading;
 			retVal.DynamicTyreRadius =
@@ -104,12 +113,13 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 					.Average();
 			retVal.CargoVolume = mission.MissionType != MissionType.Construction ? mission.TotalCargoVolume : 0.SI<CubicMeter>();
 
-
 			var axles = data.Axles;
 			if (axles.Count < mission.AxleWeightDistribution.Length) {
-				throw new VectoException("Vehicle does not contain sufficient axles. {0} axles defined, {1} axles required",
+				throw new VectoException(
+					"Vehicle does not contain sufficient axles. {0} axles defined, {1} axles required",
 					data.Axles.Count, mission.AxleWeightDistribution.Length);
 			}
+
 			var axleData = new List<Axle>();
 			for (var i = 0; i < mission.AxleWeightDistribution.Length; i++) {
 				var axleInput = axles[i];
@@ -128,20 +138,37 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 			}
 
 			foreach (var trailer in mission.Trailer) {
-				axleData.AddRange(trailer.TrailerWheels.Select(trailerWheel => new Axle {
-					AxleType = AxleType.Trailer,
-					AxleWeightShare = trailer.TrailerAxleWeightShare / trailer.TrailerWheels.Count,
-					TwinTyres = DeclarationData.Trailer.TwinTyres,
-					RollResistanceCoefficient = DeclarationData.Trailer.RollResistanceCoefficient,
-					TyreTestLoad = DeclarationData.Trailer.TyreTestLoad.SI<Newton>(),
-					Inertia = trailerWheel.Inertia,
-					WheelsDimension = trailerWheel.WheelType
-				}));
+				axleData.AddRange(
+					trailer.TrailerWheels.Select(
+						trailerWheel => new Axle {
+							AxleType = AxleType.Trailer,
+							AxleWeightShare = trailer.TrailerAxleWeightShare / trailer.TrailerWheels.Count,
+							TwinTyres = DeclarationData.Trailer.TwinTyres,
+							RollResistanceCoefficient = DeclarationData.Trailer.RollResistanceCoefficient,
+							TyreTestLoad = DeclarationData.Trailer.TyreTestLoad.SI<Newton>(),
+							Inertia = trailerWheel.Inertia,
+							WheelsDimension = trailerWheel.WheelType
+						}));
 			}
+
 			retVal.AxleData = axleData;
 			return retVal;
 		}
 
+		private VehicleData CreateExemptedVehicleData(IVehicleDeclarationInputData data)
+		{
+			var exempted = SetCommonVehicleData(data);
+			exempted.VIN = data.VIN;
+			exempted.ManufacturerAddress = data.ManufacturerAddress;
+			exempted.LegislativeClass = data.LegislativeClass;
+			exempted.ZeroEmissionVehicle = data.ZeroEmissionVehicle;
+			exempted.HybridElectricHDV = data.HybridElectricHDV;
+			exempted.DualFuelVehicle = data.DualFuelVehicle;
+			exempted.MaxNetPower1 = data.MaxNetPower1;
+			exempted.MaxNetPower2 = data.MaxNetPower2;
+			return exempted;
+		}
+
 
 		internal CombustionEngineData CreateEngineData(IEngineDeclarationInputData engine, PerSecond vehicleEngineIdleSpeed,
 			IGearboxDeclarationInputData gearbox, IEnumerable<ITorqueLimitInputData> torqueLimits)
diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs
index df48694c60c5602fe66b342c03e2e480291dbdee..4dc364224becf269ef458b8a5a6541c428af76f1 100644
--- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs
+++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs
@@ -54,6 +54,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 				WarnEngineeringMode("VehicleData");
 			}
 			var retVal = SetCommonVehicleData(data);
+			retVal.AxleConfiguration = data.AxleConfiguration;
 			retVal.BodyAndTrailerWeight = data.CurbMassExtra;
 			//retVal.CurbWeight += data.CurbMassExtra;
 			retVal.TrailerGrossVehicleWeight = 0.SI<Kilogram>();
diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeVectoRunDataFactory.cs
index fed55d58756d8c917cc8e574dfaa63accbf9aaa5..fbc3215d4d54c119b519cc846b290b040def8477 100644
--- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeVectoRunDataFactory.cs
+++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeVectoRunDataFactory.cs
@@ -89,6 +89,9 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 		{
 			_dao = new DeclarationDataAdapter();
 			var vehicle = InputDataProvider.JobInputData.Vehicle;
+			if (vehicle.ExemptedVehicle) {
+				return;
+			}
 			_segment = GetVehicleClassification(vehicle.VehicleCategory,
 				vehicle.AxleConfiguration,
 				vehicle.GrossVehicleMassRating,
@@ -123,23 +126,33 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 
 		private void InitializeReport()
 		{
-			var powertrainConfig = new VectoRunData() {
-				VehicleData =
-					_dao.CreateVehicleData(InputDataProvider.JobInputData.Vehicle, _segment.Missions.First(),
-						_segment.Missions.First().Loadings.First().Value, _segment.MunicipalBodyWeight),
-				AirdragData = _airdragData,
-				EngineData = _engineData,
-				GearboxData = _gearboxData,
-				AxleGearData = _axlegearData,
-				Retarder = _retarderData,
-				Aux =
-					_dao.CreateAuxiliaryData(InputDataProvider.JobInputData.Vehicle.AuxiliaryInputData(),
-						_segment.Missions.First().MissionType,
-						_segment.VehicleClass),
-				PTO = _ptoTransmissionData,
-				InputDataHash = InputDataProvider.XMLHash
-			};
-			powertrainConfig.VehicleData.VehicleClass = _segment.VehicleClass;
+			VectoRunData powertrainConfig;
+			if (InputDataProvider.JobInputData.Vehicle.ExemptedVehicle) {
+				powertrainConfig = new VectoRunData() {
+					Exempted = true,
+					VehicleData = _dao.CreateVehicleData(InputDataProvider.JobInputData.Vehicle, null, null, null)
+				};
+			} else {
+				powertrainConfig = new VectoRunData() {
+					VehicleData =
+						_dao.CreateVehicleData(
+							InputDataProvider.JobInputData.Vehicle, _segment.Missions.First(),
+							_segment.Missions.First().Loadings.First().Value, _segment.MunicipalBodyWeight),
+					AirdragData = _airdragData,
+					EngineData = _engineData,
+					GearboxData = _gearboxData,
+					AxleGearData = _axlegearData,
+					Retarder = _retarderData,
+					Aux =
+						_dao.CreateAuxiliaryData(
+							InputDataProvider.JobInputData.Vehicle.AuxiliaryInputData(),
+							_segment.Missions.First().MissionType,
+							_segment.VehicleClass),
+					PTO = _ptoTransmissionData,
+					InputDataHash = InputDataProvider.XMLHash
+				};
+				powertrainConfig.VehicleData.VehicleClass = _segment.VehicleClass;
+			}
 			Report.InitializeReport(powertrainConfig);
 		}
 
@@ -149,11 +162,27 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 				throw InitException;
 			}
 
+			if (InputDataProvider.JobInputData.Vehicle.ExemptedVehicle) {
+				yield return new VectoRunData {
+						Exempted = true,
+						Report = Report,
+						Mission = new Mission() { MissionType = MissionType.ExemptedMission},
+						VehicleData = _dao.CreateVehicleData(InputDataProvider.JobInputData.Vehicle, null, null, null)
+					};
+			} else {
+				foreach (var vectoRunData in VectoRunDataNonExempted())
+					yield return vectoRunData;
+			}
+		}
+
+		private IEnumerable<VectoRunData> VectoRunDataNonExempted()
+		{
 			foreach (var mission in _segment.Missions) {
 				if (mission.MissionType.IsEMS() &&
 					_engineData.RatedPowerDeclared.IsSmaller(DeclarationData.MinEnginePowerForEMS)) {
 					continue;
 				}
+
 				DrivingCycleData cycle;
 				lock (CyclesCacheLock) {
 					if (CyclesCache.ContainsKey(mission.MissionType)) {
@@ -167,14 +196,16 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 					var simulationRunData = new VectoRunData {
 						Loading = loading.Key,
 						VehicleData =
-							_dao.CreateVehicleData(InputDataProvider.JobInputData.Vehicle, mission, loading.Value,
+							_dao.CreateVehicleData(
+								InputDataProvider.JobInputData.Vehicle, mission, loading.Value,
 								_segment.MunicipalBodyWeight),
 						AirdragData = _dao.CreateAirdragData(InputDataProvider.JobInputData.Vehicle.AirdragInputData, mission, _segment),
 						EngineData = _engineData.Copy(), // a copy is necessary because every run has a different correction factor!
 						GearboxData = _gearboxData,
 						AxleGearData = _axlegearData,
 						AngledriveData = _angledriveData,
-						Aux = _dao.CreateAuxiliaryData(InputDataProvider.JobInputData.Vehicle.AuxiliaryInputData(), mission.MissionType,
+						Aux = _dao.CreateAuxiliaryData(
+							InputDataProvider.JobInputData.Vehicle.AuxiliaryInputData(), mission.MissionType,
 							_segment.VehicleClass),
 						Cycle = new DrivingCycleProxy(cycle, mission.MissionType.ToString()),
 						Retarder = _retarderData,
@@ -188,12 +219,12 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 							? _municipalPtoTransmissionData
 							: _ptoTransmissionData,
 						InputDataHash = InputDataProvider.XMLHash,
-							SimulationType = SimulationType.DistanceCycle
-
+						SimulationType = SimulationType.DistanceCycle
 					};
 					simulationRunData.EngineData.FuelConsumptionCorrectionFactor = DeclarationData.WHTCCorrection.Lookup(
-						mission.MissionType.GetNonEMSMissionType(), _engineData.WHTCRural, _engineData.WHTCUrban, _engineData.WHTCMotorway) *
-						_engineData.ColdHotCorrectionFactor * _engineData.CorrectionFactorRegPer;
+																						mission.MissionType.GetNonEMSMissionType(), _engineData.WHTCRural, _engineData.WHTCUrban,
+																						_engineData.WHTCMotorway) *
+																					_engineData.ColdHotCorrectionFactor * _engineData.CorrectionFactorRegPer;
 					simulationRunData.VehicleData.VehicleClass = _segment.VehicleClass;
 					yield return simulationRunData;
 				}
diff --git a/VectoCore/VectoCore/Models/Declaration/MissionType.cs b/VectoCore/VectoCore/Models/Declaration/MissionType.cs
index 893376efc85a1ff21b59503c767448c557476ebf..30989c16455e66c5dbb842086df9422d95190aab 100644
--- a/VectoCore/VectoCore/Models/Declaration/MissionType.cs
+++ b/VectoCore/VectoCore/Models/Declaration/MissionType.cs
@@ -29,34 +29,35 @@
 *   Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology
 */
 
-using System;
-
-namespace TUGraz.VectoCore.Models.Declaration
-{
-	public enum MissionType
-	{
-		LongHaul,
-		LongHaulEMS,
-		RegionalDelivery,
-		RegionalDeliveryEMS,
-		UrbanDelivery,
-		MunicipalUtility,
-		Construction,
-		HeavyUrban,
-		Urban,
-		Suburban,
-		Interurban,
-		Coach,
-		VerificationTest
-	}
-
-	public static class MissionTypeHelper
-	{
-		public static string GetName(this MissionType self)
-		{
-			return self.ToString().ToLowerInvariant();
-		}
-
+using System;
+
+namespace TUGraz.VectoCore.Models.Declaration
+{
+	public enum MissionType
+	{
+		LongHaul,
+		LongHaulEMS,
+		RegionalDelivery,
+		RegionalDeliveryEMS,
+		UrbanDelivery,
+		MunicipalUtility,
+		Construction,
+		HeavyUrban,
+		Urban,
+		Suburban,
+		Interurban,
+		Coach,
+		VerificationTest,
+		ExemptedMission
+	}
+
+	public static class MissionTypeHelper
+	{
+		public static string GetName(this MissionType self)
+		{
+			return self.ToString().ToLowerInvariant();
+		}
+
 		public static bool IsEMS(this MissionType self)
 		{
 			return self == MissionType.LongHaulEMS || self == MissionType.RegionalDeliveryEMS;
@@ -65,49 +66,49 @@ namespace TUGraz.VectoCore.Models.Declaration
 		public static bool IsDeclarationMission(this MissionType self)
 		{
 			return self != MissionType.VerificationTest;
-		}
-
-		public static MissionType GetNonEMSMissionType(this MissionType self)
-		{
-			if (self == MissionType.LongHaulEMS) {
-				return MissionType.LongHaul;
-			}
-			if (self == MissionType.RegionalDeliveryEMS) {
-				return MissionType.RegionalDelivery;
-			}
-			return self;
-		}
-
-		public static string ToXMLFormat(this MissionType self)
-		{
-			switch (self) {
-				case MissionType.LongHaul:
-					return "Long Haul";
-				case MissionType.LongHaulEMS:
-					return "Long Haul EMS";
-				case MissionType.RegionalDelivery:
-					return "Regional Delivery";
-				case MissionType.RegionalDeliveryEMS:
-					return "Regional Delivery EMS";
-				case MissionType.UrbanDelivery:
-					return "Urban Delivery";
-				case MissionType.MunicipalUtility:
-					return "Municipal Utility";
-				case MissionType.Construction:
-					return "Construction";
-				//case MissionType.HeavyUrban:
-				//	return "";
-				//case MissionType.Urban:
-				//	return "";
-				//case MissionType.Suburban:
-				//	return "";
-				//case MissionType.Interurban:
-				//	return "";
-				//case MissionType.Coach:
-				//	return "";
-				default:
-					throw new ArgumentOutOfRangeException("MissionType", self, null);
-			}
-		}
-	}
+		}
+
+		public static MissionType GetNonEMSMissionType(this MissionType self)
+		{
+			if (self == MissionType.LongHaulEMS) {
+				return MissionType.LongHaul;
+			}
+			if (self == MissionType.RegionalDeliveryEMS) {
+				return MissionType.RegionalDelivery;
+			}
+			return self;
+		}
+
+		public static string ToXMLFormat(this MissionType self)
+		{
+			switch (self) {
+				case MissionType.LongHaul:
+					return "Long Haul";
+				case MissionType.LongHaulEMS:
+					return "Long Haul EMS";
+				case MissionType.RegionalDelivery:
+					return "Regional Delivery";
+				case MissionType.RegionalDeliveryEMS:
+					return "Regional Delivery EMS";
+				case MissionType.UrbanDelivery:
+					return "Urban Delivery";
+				case MissionType.MunicipalUtility:
+					return "Municipal Utility";
+				case MissionType.Construction:
+					return "Construction";
+				//case MissionType.HeavyUrban:
+				//	return "";
+				//case MissionType.Urban:
+				//	return "";
+				//case MissionType.Suburban:
+				//	return "";
+				//case MissionType.Interurban:
+				//	return "";
+				//case MissionType.Coach:
+				//	return "";
+				default:
+					throw new ArgumentOutOfRangeException("MissionType", self, null);
+			}
+		}
+	}
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCore/Models/Declaration/WHTCCorrection.cs b/VectoCore/VectoCore/Models/Declaration/WHTCCorrection.cs
index fe131c8a4ca558818af343ce4a2834257fa5a22e..06281f107a7fcda9d669dad1a2c4a898c457be67 100644
--- a/VectoCore/VectoCore/Models/Declaration/WHTCCorrection.cs
+++ b/VectoCore/VectoCore/Models/Declaration/WHTCCorrection.cs
@@ -62,7 +62,7 @@ namespace TUGraz.VectoCore.Models.Declaration
 			protected override void ParseData(DataTable table)
 			{
 				foreach (MissionType mission in Enum.GetValues(typeof(MissionType))) {
-					if (mission.IsEMS() || !mission.IsDeclarationMission()) {
+					if (mission.IsEMS() || !mission.IsDeclarationMission() || mission == MissionType.ExemptedMission) {
 						continue;
 					}
 					var values = table.Columns[mission.ToString().ToLower()].Values<string>().ToDouble().ToArray();
diff --git a/VectoCore/VectoCore/Models/Simulation/Data/VectoRunData.cs b/VectoCore/VectoCore/Models/Simulation/Data/VectoRunData.cs
index 21cfcb0a6f79ecf87b4841cdf21d8030ef374f06..490067b8eb59c9f39bcef676101dcabf1cda9723 100644
--- a/VectoCore/VectoCore/Models/Simulation/Data/VectoRunData.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Data/VectoRunData.cs
@@ -49,6 +49,11 @@ namespace TUGraz.VectoCore.Models.Simulation.Data
 	[CustomValidation(typeof(VectoRunData), "ValidateRunData")]
 	public class VectoRunData : SimulationComponentData
 	{
+		public VectoRunData()
+		{
+			Exempted = false;
+		}
+
 		[ValidateObject]
 		public VehicleData VehicleData { get; internal set; }
 
@@ -110,6 +115,8 @@ namespace TUGraz.VectoCore.Models.Simulation.Data
 
 		public VTPData VTPData { get; set; }
 
+		public bool Exempted { get; set; }
+
 		public class AuxData
 		{
 			// ReSharper disable once InconsistentNaming
diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/ExemptedRun.cs b/VectoCore/VectoCore/Models/Simulation/Impl/ExemptedRun.cs
new file mode 100644
index 0000000000000000000000000000000000000000..f91c48b7f25c66d3086c19fe2184d1b3d92d4f71
--- /dev/null
+++ b/VectoCore/VectoCore/Models/Simulation/Impl/ExemptedRun.cs
@@ -0,0 +1,39 @@
+using System;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCore.Models.Connector.Ports.Impl;
+using TUGraz.VectoCore.Models.Simulation.Data;
+using TUGraz.VectoCore.OutputData;
+
+namespace TUGraz.VectoCore.Models.Simulation.Impl {
+	internal class ExemptedRun : VectoRun
+	{
+		private Action<ModalDataContainer> _writeSumData;
+
+		public ExemptedRun(VehicleContainer data, Action<ModalDataContainer> writeSumData) : base(data)
+		{
+			_writeSumData = writeSumData;
+		}
+
+		#region Overrides of VectoRun
+
+		public override double Progress { get { return 1; } }
+
+		public override string CycleName { get { return "ExemptedVehicle"; } }
+
+		public override string RunSuffix { get { return ""; } }
+
+		protected override IResponse DoSimulationStep()
+		{
+			FinishedWithoutErrors = true;
+			_writeSumData(null);
+			return new ResponseCycleFinished();
+		}
+
+		protected override IResponse Initialize()
+		{
+			return new ResponseSuccess();
+		}
+
+		#endregion
+	}
+}
\ No newline at end of file
diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs
index 2d3520853d47e45db5113a54da9418f22f8db9f5..a821903749a7c024efc96268faa7b0dfe8af843f 100644
--- a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs
@@ -146,37 +146,58 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 			var warning1Hz = false;
 
 			foreach (var data in DataReader.NextRun()) {
-				var d = data;
-				var addReportResult = PrepareReport(data);
-				if (!data.Cycle.CycleType.IsDistanceBased() && ModalResults1Hz && !warning1Hz) {
-					Log.Error("Output filter for 1Hz results is only available for distance-based cycles!");
-					warning1Hz = true;
-				}
 				var current = i++;
+				var d = data;
 				data.JobRunId = current;
-				IModalDataContainer modContainer =
-					new ModalDataContainer(data, ModWriter,
-						addReportResult: _mode == ExecutionMode.Declaration ? addReportResult : null,
-						writeEngineOnly: _engineOnlyMode,
-						filter: GetModDataFilter(data)) {
-							WriteAdvancedAux = data.AdvancedAux != null && data.AdvancedAux.AuxiliaryAssembly == AuxiliaryModel.Advanced,
-							WriteModalResults = _mode != ExecutionMode.Declaration || WriteModalResults
-						};
-				
-				var builder = new PowertrainBuilder(modContainer, modData => {
+				yield return data.Exempted ? GetExemptedRun(data) : GetNonExemptedRun(data, current, d, ref warning1Hz);
+			}
+		}
+
+		private IVectoRun GetExemptedRun(VectoRunData data)
+		{
+			if (data.Report != null) {
+				data.Report.PrepareResult(data.Loading, data.Mission, data);
+			}
+			return new ExemptedRun(new VehicleContainer(data.ExecutionMode) { RunData = data }, modData => {
+				if (data.Report != null) {
+					data.Report.AddResult(data.Loading, data.Mission, data, modData);
+				}
+			});
+		}
+
+		private IVectoRun GetNonExemptedRun(VectoRunData data, int current, VectoRunData d, ref bool warning1Hz)
+		{
+			var addReportResult = PrepareReport(data);
+			if (!data.Cycle.CycleType.IsDistanceBased() && ModalResults1Hz && !warning1Hz) {
+				Log.Error("Output filter for 1Hz results is only available for distance-based cycles!");
+				warning1Hz = true;
+			}
+
+			IModalDataContainer modContainer =
+				new ModalDataContainer(
+					data, ModWriter,
+					addReportResult: _mode == ExecutionMode.Declaration ? addReportResult : null,
+					writeEngineOnly: _engineOnlyMode,
+					filter: GetModDataFilter(data)) {
+					WriteAdvancedAux = data.AdvancedAux != null && data.AdvancedAux.AuxiliaryAssembly == AuxiliaryModel.Advanced,
+					WriteModalResults = _mode != ExecutionMode.Declaration || WriteModalResults
+				};
+
+			var builder = new PowertrainBuilder(
+				modContainer, modData => {
 					if (SumData != null) {
 						SumData.Write(modData, JobNumber, current, d);
 					}
 				});
 
-				var run = GetVectoRun(data, builder);
+			var run = GetVectoRun(data, builder);
 
-				if (Validate) {
-					ValidateVectoRunData(run, data.GearboxData == null ? (GearboxType?)null : data.GearboxData.Type,
-						data.Mission != null && data.Mission.MissionType.IsEMS());
-				}
-				yield return run;
+			if (Validate) {
+				ValidateVectoRunData(
+					run, data.GearboxData == null ? (GearboxType?)null : data.GearboxData.Type,
+					data.Mission != null && data.Mission.MissionType.IsEMS());
 			}
+			return run;
 		}
 
 		private IModalDataFilter[] GetModDataFilter(VectoRunData data)
@@ -244,9 +265,9 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 			if (data.Report != null) {
 				data.Report.PrepareResult(data.Loading, data.Mission, data);
 			}
-			Action<ModalDataContainer> addReportResult = writer => {
+			Action<ModalDataContainer> addReportResult = modData => {
 				if (data.Report != null) {
-					data.Report.AddResult(data.Loading, data.Mission, data, writer);
+					data.Report.AddResult(data.Loading, data.Mission, data, modData);
 				}
 			};
 			return addReportResult;
diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/VectoRun.cs b/VectoCore/VectoCore/Models/Simulation/Impl/VectoRun.cs
index c66eee78a9855d7a5dd3c460e2b1e4ac65416064..84dd263d333388cbf30718c04078514ccc6f0450 100644
--- a/VectoCore/VectoCore/Models/Simulation/Impl/VectoRun.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Impl/VectoRun.cs
@@ -61,17 +61,17 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 
 		public int RunIdentifier { get; protected set; }
 
-		public string RunName
+		public virtual string RunName
 		{
 			get { return Container.RunData.JobName; }
 		}
 
-		public string CycleName
+		public virtual string CycleName
 		{
 			get { return Container.RunData.Cycle.Name; }
 		}
 
-		public string RunSuffix
+		public virtual string RunSuffix
 		{
 			get { return Container.RunData.ModFileSuffix; }
 		}
@@ -81,7 +81,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 			get { return Container.RunData.JobRunId; }
 		}
 
-		public double Progress
+		public virtual double Progress
 		{
 			get { return CyclePort.Progress; }
 		}
diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/VehicleContainer.cs b/VectoCore/VectoCore/Models/Simulation/Impl/VehicleContainer.cs
index 48467a2291bf74ab0e1835cb4c2f9ac2ddba78fb..9fef1b8f0a9a774a1d0d7aba99f2f2066c696c4d 100644
--- a/VectoCore/VectoCore/Models/Simulation/Impl/VehicleContainer.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Impl/VehicleContainer.cs
@@ -327,12 +327,12 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 		public void FinishSimulationRun(Exception e = null)
 		{
 			Log.Info("VehicleContainer finishing simulation.");
-			ModData.Finish(RunStatus, e);
+			ModData?.Finish(RunStatus, e);
 
 			WriteSumData(ModData);
 
-			ModData.FinishSimulation();
-			DrivingCycle.FinishSimulation();
+			ModData?.FinishSimulation();
+			DrivingCycle?.FinishSimulation();
 		}
 
 		public void FinishSimulation()
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Data/VehicleData.cs b/VectoCore/VectoCore/Models/SimulationComponent/Data/VehicleData.cs
index d8b1a49c947533e83e0d56f50d26eb058e89a9aa..79915c78f42950e55d12e30abf4f9ff24f1640bd 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Data/VehicleData.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Data/VehicleData.cs
@@ -205,6 +205,12 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
 			}
 		}
 
+		public bool ZeroEmissionVehicle { get; internal set; }
+		public bool HybridElectricHDV { get; internal set; }
+		public bool DualFuelVehicle { get; internal set; }
+		public Watt MaxNetPower1 { get; internal set; }
+		public Watt MaxNetPower2 { get; internal set; }
+
 		protected void ComputeRollResistanceAndReducedMassWheels()
 		{
 			if (TotalVehicleWeight == 0.SI<Kilogram>()) {
diff --git a/VectoCore/VectoCore/OutputData/DeclarationReport.cs b/VectoCore/VectoCore/OutputData/DeclarationReport.cs
index 5226da768a02ae14c98a36c4b6535acd669ad8cc..209bfebe4e5aa071c5b1573b5eef957f73b57883 100644
--- a/VectoCore/VectoCore/OutputData/DeclarationReport.cs
+++ b/VectoCore/VectoCore/OutputData/DeclarationReport.cs
@@ -100,13 +100,16 @@ namespace TUGraz.VectoCore.OutputData
 		[MethodImpl(MethodImplOptions.Synchronized)]
 		public void PrepareResult(LoadingType loading, Mission mission, VectoRunData runData)
 		{
-			if (!Missions.ContainsKey(mission.MissionType)) {
-				Missions[mission.MissionType] = new ResultContainer<T>() {
-					Mission = mission.MissionType,
+			var missionType = mission.MissionType;
+			if (!Missions.ContainsKey(missionType)) {
+				Missions[MissionType.ExemptedMission] = new ResultContainer<T>() {
+					Mission = MissionType.ExemptedMission,
 					ResultEntry = new Dictionary<LoadingType, T>(),
 				};
 			}
-			Missions[mission.MissionType].ResultEntry[loading] = new T();
+			if (missionType != MissionType.ExemptedMission) {
+				Missions[mission.MissionType].ResultEntry[loading] = new T();
+			}
 			_resultCount++;
 		}
 
@@ -118,12 +121,14 @@ namespace TUGraz.VectoCore.OutputData
 			if (!Missions.ContainsKey(mission.MissionType)) {
 				throw new VectoException("Unknown mission type {0} for generating declaration report", mission.MissionType);
 			}
-			if (!Missions[mission.MissionType].ResultEntry.ContainsKey(loadingType)) {
+			if (mission.MissionType != MissionType.ExemptedMission && !Missions[mission.MissionType].ResultEntry.ContainsKey(loadingType)) {
 				throw new VectoException("Unknown loading type {0} for mission {1}", loadingType, mission.MissionType);
 			}
 			_resultCount--;
 
-			DoAddResult(Missions[mission.MissionType].ResultEntry[loadingType], runData, modData);
+			if (mission.MissionType != MissionType.ExemptedMission) {
+				DoAddResult(Missions[mission.MissionType].ResultEntry[loadingType], runData, modData);
+			}
 
 			if (_resultCount == 0) {
 				DoWriteReport();
diff --git a/VectoCore/VectoCore/OutputData/XML/XMLCustomerReport.cs b/VectoCore/VectoCore/OutputData/XML/XMLCustomerReport.cs
index 8125516e3189cb3e4e81b6d090dc28420ff6d189..52ec8ff3b0e47039b74d552e6b379de50dbf82a4 100644
--- a/VectoCore/VectoCore/OutputData/XML/XMLCustomerReport.cs
+++ b/VectoCore/VectoCore/OutputData/XML/XMLCustomerReport.cs
@@ -72,6 +72,7 @@ namespace TUGraz.VectoCore.OutputData.XML
 
 		public void Initialize(VectoRunData modelData)
 		{
+			var exempted = modelData.Exempted;
 			VehiclePart.Add(
 				new XElement(tns + XMLNames.Component_Model, modelData.VehicleData.ModelName),
 				new XElement(tns + XMLNames.Component_Manufacturer, modelData.VehicleData.Manufacturer),
@@ -79,24 +80,43 @@ namespace TUGraz.VectoCore.OutputData.XML
 				new XElement(tns + XMLNames.Vehicle_VIN, modelData.VehicleData.VIN),
 				new XElement(tns + XMLNames.Vehicle_LegislativeClass, modelData.VehicleData.LegislativeClass.ToXMLFormat()),
 				new XElement(tns + XMLNames.Report_Vehicle_VehicleGroup, modelData.VehicleData.VehicleClass.GetClassNumber()),
-				new XElement(tns + XMLNames.Vehicle_AxleConfiguration, modelData.VehicleData.AxleConfiguration.GetName()),
+				exempted ? null : new XElement(tns + XMLNames.Vehicle_AxleConfiguration, modelData.VehicleData.AxleConfiguration.GetName()),
 				new XElement(tns + XMLNames.Vehicle_GrossVehicleMass, XMLHelper.ValueAsUnit(modelData.VehicleData.GrossVehicleWeight, XMLNames.Unit_t, 1)),
 					
 				new XElement(tns + XMLNames.Vehicle_CurbMassChassis, XMLHelper.ValueAsUnit(modelData.VehicleData.CurbWeight, XMLNames.Unit_kg)),
-				new XElement(tns + XMLNames.Report_Vehicle_EngineRatedPower, XMLHelper.ValueAsUnit(modelData.EngineData.RatedPowerDeclared, XMLNames.Unit_kW)),
-				new XElement(tns + XMLNames.Report_Vehicle_EngineDisplacement, XMLHelper.ValueAsUnit(modelData.EngineData.Displacement, XMLNames.Unit_ltr, 1)),
+				exempted ? ExemptedData(modelData) : ComponentData(modelData)
+				);
+			InputDataIntegrity = new XElement(tns + "InputDataSignature",
+				modelData.InputDataHash == null ? CreateDummySig() : new XElement(modelData.InputDataHash));
+		}
+
+		private XElement[] ExemptedData(VectoRunData modelData)
+		{
+			return null;
+		}
+
+		private XElement[] ComponentData(VectoRunData modelData)
+		{
+			return new[] {
+				new XElement(
+					tns + XMLNames.Report_Vehicle_EngineRatedPower,
+					XMLHelper.ValueAsUnit(modelData.EngineData.RatedPowerDeclared, XMLNames.Unit_kW)),
+				new XElement(
+					tns + XMLNames.Report_Vehicle_EngineDisplacement,
+					XMLHelper.ValueAsUnit(modelData.EngineData.Displacement, XMLNames.Unit_ltr, 1)),
 				new XElement(tns + XMLNames.Engine_FuelType, modelData.EngineData.FuelType.ToXMLFormat()),
-				new XElement(tns + XMLNames.Report_Vehicle_TransmissionCertificationMethod,
+				new XElement(
+					tns + XMLNames.Report_Vehicle_TransmissionCertificationMethod,
 					modelData.GearboxData.CertificationMethod.ToXMLFormat()),
 				new XElement(tns + XMLNames.Gearbox_TransmissionType, modelData.GearboxData.Type.ToXMLFormat()),
 				new XElement(tns + XMLNames.Report_GetGearbox_GearsCount, modelData.GearboxData.Gears.Count),
 				new XElement(tns + XMLNames.Report_Vehicle_Retarder, modelData.Retarder.Type.IsDedicatedComponent()),
 				new XElement(tns + XMLNames.Report_Vehicle_AxleRatio, modelData.AxleGearData.AxleGear.Ratio.ToXMLFormat(3)),
-				new XElement(tns + XMLNames.Report_Vehicle_AverageRRC,
+				new XElement(
+					tns + XMLNames.Report_Vehicle_AverageRRC,
 					modelData.VehicleData.AverageRollingResistanceTruck.ToXMLFormat(4))
-				);
-			InputDataIntegrity = new XElement(tns + "InputDataSignature",
-				modelData.InputDataHash == null ? CreateDummySig() : new XElement(modelData.InputDataHash));
+			};
+
 		}
 
 		private XElement CreateDummySig()
diff --git a/VectoCore/VectoCore/OutputData/XML/XMLManufacturerReport.cs b/VectoCore/VectoCore/OutputData/XML/XMLManufacturerReport.cs
index 5ac6e0e68dc0744463772745addf552dc24c115b..ae5b5c1d586a3e124943449ab158a1eea57fa6f8 100644
--- a/VectoCore/VectoCore/OutputData/XML/XMLManufacturerReport.cs
+++ b/VectoCore/VectoCore/OutputData/XML/XMLManufacturerReport.cs
@@ -74,6 +74,7 @@ namespace TUGraz.VectoCore.OutputData.XML
 
 		public void Initialize(VectoRunData modelData)
 		{
+			var exempted = modelData.Exempted;
 			VehiclePart.Add(
 				new XElement(tns + XMLNames.Component_Model, modelData.VehicleData.ModelName),
 				new XElement(tns + XMLNames.Component_Manufacturer, modelData.VehicleData.Manufacturer),
@@ -81,27 +82,37 @@ namespace TUGraz.VectoCore.OutputData.XML
 				new XElement(tns + XMLNames.Vehicle_VIN, modelData.VehicleData.VIN),
 				new XElement(tns + XMLNames.Vehicle_LegislativeClass, modelData.VehicleData.LegislativeClass.ToXMLFormat()),
 				new XElement(tns + XMLNames.Report_Vehicle_VehicleGroup, modelData.VehicleData.VehicleClass.GetClassNumber()),
-				new XElement(tns + XMLNames.Vehicle_AxleConfiguration, modelData.VehicleData.AxleConfiguration.GetName()),
+				exempted ? null : new XElement(tns + XMLNames.Vehicle_AxleConfiguration, modelData.VehicleData.AxleConfiguration.GetName()),
 				new XElement(tns + XMLNames.Vehicle_GrossVehicleMass, XMLHelper.ValueAsUnit(modelData.VehicleData.GrossVehicleWeight, XMLNames.Unit_t, 1)),
 				new XElement(tns + XMLNames.Vehicle_CurbMassChassis, XMLHelper.ValueAsUnit(modelData.VehicleData.CurbWeight, XMLNames.Unit_kg)),
 				new XElement(tns + XMLNames.Vehicle_PTO, modelData.PTO != null),
-				GetTorqueLimits(modelData.EngineData),
-				new XElement(tns + XMLNames.Vehicle_Components,
-					GetEngineDescription(modelData.EngineData),
-					GetGearboxDescription(modelData.GearboxData),
-					GetTorqueConverterDescription(modelData.GearboxData.TorqueConverterData),
-					GetRetarderDescription(modelData.Retarder),
-					GetAngledriveDescription(modelData.AngledriveData),
-					GetAxlegearDescription(modelData.AxleGearData),
-					GetAirDragDescription(modelData.AirdragData),
-					GetAxleWheelsDescription(modelData.VehicleData),
-					GetAuxiliariesDescription(modelData.Aux)
-					)
+				exempted ? null : GetTorqueLimits(modelData.EngineData),
+				exempted ? ExemptedData(modelData) : VehicleComponents(modelData)
 				);
 			InputDataIntegrity = new XElement(tns + XMLNames.Report_Input_Signature,
 				modelData.InputDataHash == null ? CreateDummySig() : new XElement(modelData.InputDataHash));
 		}
 
+		private XElement VehicleComponents(VectoRunData modelData)
+		{
+			return new XElement(tns + XMLNames.Vehicle_Components,
+								GetEngineDescription(modelData.EngineData),
+								GetGearboxDescription(modelData.GearboxData),
+								GetTorqueConverterDescription(modelData.GearboxData.TorqueConverterData),
+								GetRetarderDescription(modelData.Retarder),
+								GetAngledriveDescription(modelData.AngledriveData),
+								GetAxlegearDescription(modelData.AxleGearData),
+								GetAirDragDescription(modelData.AirdragData),
+								GetAxleWheelsDescription(modelData.VehicleData),
+								GetAuxiliariesDescription(modelData.Aux)
+			);
+		}
+
+		private XElement ExemptedData(VectoRunData modelData)
+		{
+			return null;
+		}
+
 		private XElement CreateDummySig()
 		{
 			return new XElement(di + XMLNames.DI_Signature_Reference,
diff --git a/VectoCore/VectoCore/VectoCore.csproj b/VectoCore/VectoCore/VectoCore.csproj
index 9d297de84f79077a83d9ce41eb3588fcb21d674b..de3b8a7e6ce29e295400248e2132f6864326409f 100644
--- a/VectoCore/VectoCore/VectoCore.csproj
+++ b/VectoCore/VectoCore/VectoCore.csproj
@@ -196,6 +196,7 @@
     <Compile Include="Models\Simulation\Data\ModalResultField.cs" />
     <Compile Include="InputData\Reader\Impl\EngineeringVTPModeVectoRunDataFactory.cs" />
     <Compile Include="Models\SimulationComponent\Impl\VTPCycle.cs" />
+    <Compile Include="Models\Simulation\Impl\ExemptedRun.cs" />
     <Compile Include="OutputData\XML\XMLVTPReport.cs" />
     <Compile Include="OutputData\VTPReport.cs" />
     <Compile Include="OutputData\ModFilter\ActualModalDataFilter.cs" />
diff --git a/VectoCore/VectoCoreTest/Integration/ExemptedVehicleTest.cs b/VectoCore/VectoCoreTest/Integration/ExemptedVehicleTest.cs
new file mode 100644
index 0000000000000000000000000000000000000000..ac7b4a776829b2c5cb163fb2f0517f53bce81297
--- /dev/null
+++ b/VectoCore/VectoCoreTest/Integration/ExemptedVehicleTest.cs
@@ -0,0 +1,62 @@
+using System;
+using System.IO;
+using System.Linq;
+using NUnit.Framework;
+using NUnit.Framework.Internal;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCore.InputData.FileIO.XML.Declaration;
+using TUGraz.VectoCore.Models.Simulation.Impl;
+using TUGraz.VectoCore.OutputData.FileIO;
+using TUGraz.VectoCore.Tests.Models.Simulation;
+
+namespace TUGraz.VectoCore.Tests.Integration
+{
+	[TestFixture]
+	public class ExemptedVehicleTest
+	{
+		const string ExemptedVehicle = @"Testdata\Integration\DeclarationMode\ExemptedVehicle\vecto_vehicle-sample_exempted.xml";
+
+		[OneTimeSetUp]
+		public void RunBeforeAnyTests()
+		{
+			Directory.SetCurrentDirectory(TestContext.CurrentContext.TestDirectory);
+		}
+
+		[TestCase(ExemptedVehicle, 1)]
+		public void TestSimulationExemptedVehicle(string filename, int numRuns)
+		{
+			var writer = new FileOutputWriter(filename);
+
+			var customerFile = writer.XMLCustomerReportName;
+			var manufactuerFile = writer.XMLFullReportName;
+			if (File.Exists(customerFile)) {
+				File.Delete(customerFile);
+			}
+			if (File.Exists(manufactuerFile)) {
+				File.Delete(manufactuerFile);
+			}
+
+			var inputData = new XMLDeclarationInputDataProvider(filename, true); //.ReadJsonJob(relativeJobPath);
+			var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, writer) {
+				WriteModalResults = true,
+				ActualModalData = true
+			};
+			var jobContainer = new JobContainer(new MockSumWriter());
+
+			var runs = factory.SimulationRuns().ToList();
+			Assert.AreEqual(numRuns, runs.Count);
+			foreach (var run in runs) {
+				jobContainer.AddRun(run);
+			}
+			//jobContainer.AddRuns(factory);
+
+			jobContainer.Execute();
+			jobContainer.WaitFinished();
+			var progress = jobContainer.GetProgress();
+			Assert.IsTrue(progress.All(r => r.Value.Success), string.Concat<Exception>(progress.Select(r => r.Value.Error)));
+
+			Assert.IsTrue(File.Exists(manufactuerFile));
+			Assert.IsTrue(File.Exists(customerFile));
+		}
+	}
+}
diff --git a/VectoCore/VectoCoreTest/TestData/Integration/DeclarationMode/ExemptedVehicle/vecto_vehicle-sample_exempted.xml b/VectoCore/VectoCoreTest/TestData/Integration/DeclarationMode/ExemptedVehicle/vecto_vehicle-sample_exempted.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e8c42c7e40d553e5174954ecec33c48951c6aadf
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/Integration/DeclarationMode/ExemptedVehicle/vecto_vehicle-sample_exempted.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"
+													xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="1.0"
+													xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v1.0"
+													xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationInput:v1.0 E:\QUAM\Workspace\VECTO_quam\VectoCore\VectoCore\Resources\XSD/VectoInput.xsd"
+													xmlns:di="http://www.w3.org/2000/09/xmldsig#">
+	<Vehicle id="VEH-1234567890">
+		<Manufacturer>Generic Truck Manufacturer</Manufacturer>
+		<ManufacturerAddress>Street, ZIP City</ManufacturerAddress>
+		<Model>Generic Model</Model>
+		<VIN>VEH-1234567890</VIN>
+		<Date>2017-02-15T11:00:00Z</Date>
+		<LegislativeClass>N3</LegislativeClass>
+		<VehicleCategory>Tractor</VehicleCategory>
+		<CurbMassChassis>7100</CurbMassChassis>
+		<GrossVehicleMass>40000</GrossVehicleMass>
+		<ZeroEmissionVehicle>true</ZeroEmissionVehicle>
+		<MaxNetPower1>30000</MaxNetPower1>
+		<MaxNetPower2>20000</MaxNetPower2>
+		<HybridElectricHDV>true</HybridElectricHDV>
+		<DualFuelVehicle>true</DualFuelVehicle>
+	</Vehicle>
+</tns:VectoInputDeclaration>
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/VectoCoreTest.csproj b/VectoCore/VectoCoreTest/VectoCoreTest.csproj
index 63bbe9001d082aff119c9a7880d2a2e627587c35..b5946c0c3e505c2e81891fa98b29a35670f8ddba 100644
--- a/VectoCore/VectoCoreTest/VectoCoreTest.csproj
+++ b/VectoCore/VectoCoreTest/VectoCoreTest.csproj
@@ -85,6 +85,7 @@
     <Compile Include="Integration\CoachPowerTrain.cs" />
     <Compile Include="Integration\Declaration\EngineInputDataTests.cs" />
     <Compile Include="Integration\DriverStrategy\SimpleCycles.cs" />
+    <Compile Include="Integration\ExemptedVehicleTest.cs" />
     <Compile Include="Integration\VocationalVehicleTest.cs" />
     <Compile Include="Integration\VTP\VTPTest.cs" />
     <Compile Include="Integration\FuelTypesTest.cs" />
@@ -2717,6 +2718,9 @@
     <Content Include="TestData\Integration\DeclarationMode\EngineSpeedTooHigh\vecto_vehicle-sample_9gears.xml">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
+    <Content Include="TestData\Integration\DeclarationMode\ExemptedVehicle\vecto_vehicle-sample_exempted.xml">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
     <Content Include="TestData\Integration\VTPMode\GenericVehicle\CityBus_AT_Ser.RSLT_MANUFACTURER.xml">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>