diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs
index 7ff88993796116551b127b90c98bb33908a6b350..dc7cdbb1a3275cc9fa7576175d0e809a9019b1b7 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs
@@ -1152,8 +1152,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 			get
 			{
 				return ElementExists(XMLNames.Bus_LegislativeCategory)
-					? GetString(XMLNames.Bus_LegislativeCategory).ParseEnum<LegislativeClass?>()
-					: null;
+					? GetString(XMLNames.Bus_LegislativeCategory).ParseEnum<LegislativeClass>()
+					:  (LegislativeClass?)null;
 			}
 		}
 		
@@ -1192,7 +1192,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 			{
 				return ElementExists(XMLNames.Vehicle_RegisteredClass)
 					? RegistrationClassHelper.Parse(GetString(XMLNames.Vehicle_RegisteredClass)).First()
-					: (RegistrationClass?)null;
+					: null;
 			}
 		}
 
@@ -1231,10 +1231,12 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 
 		public override VehicleCode? VehicleCode
 		{
-			get {
+			get
+			{
 				return ElementExists(XMLNames.Vehicle_VehicleCode)
 					? GetString(XMLNames.Vehicle_VehicleCode).ParseEnum<VehicleCode>()
-					: (VehicleCode?)null; }
+					: (VehicleCode?)null;
+			}
 		}
 
 		public override bool? LowEntry
@@ -1378,31 +1380,63 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 		public XMLDeclarationExemptedInterimStageBusDataProviderV28(IXMLDeclarationJobInputData jobData,
 			XmlNode xmlNode, string sourceFile)
 			: base(jobData, xmlNode, sourceFile) {}
-		
+
+
+		public override string Model
+		{
+			get
+			{
+				return ElementExists(XMLNames.Component_Model)
+					? GetString(XMLNames.Component_Model) : null;
+			}
+		}
+
 		public override LegislativeClass? LegislativeClass
 		{
-			get { return GetString(XMLNames.Bus_LegislativeCategory).ParseEnum<LegislativeClass>(); }
+			get
+			{
+				return ElementExists(XMLNames.Bus_LegislativeCategory)
+					? GetString(XMLNames.Bus_LegislativeCategory).ParseEnum<LegislativeClass>()
+					: (LegislativeClass?)null;
+			}
 		}
 
 		public override Kilogram CurbMassChassis
 		{
-			get { return GetDouble(XMLNames.Bus_CorrectedActualMass).SI<Kilogram>(); }
+			get
+			{
+				return ElementExists(XMLNames.Bus_CorrectedActualMass)
+					? GetDouble(XMLNames.Bus_CorrectedActualMass).SI<Kilogram>()
+					: null;
+			}
 		}
 
 		public override Kilogram GrossVehicleMassRating
 		{
-			get { return GetDouble(XMLNames.Vehicle_TPMLM).SI<Kilogram>(); }
+			get
+			{
+				return ElementExists(XMLNames.Vehicle_TPMLM)
+					? GetDouble(XMLNames.Vehicle_TPMLM).SI<Kilogram>()
+					: null;
+			}
 		}
 		
 		public override RegistrationClass? RegisteredClass
 		{
-			get { return RegistrationClassHelper.Parse(GetString(XMLNames.Vehicle_RegisteredClass)).First(); }
+			get
+			{
+				return ElementExists(XMLNames.Vehicle_RegisteredClass)
+					? RegistrationClassHelper.Parse(GetString(XMLNames.Vehicle_RegisteredClass)).First()
+					: null;
+			}
 		}
 
 		public override int NumberOfPassengersLowerDeck
 		{
 			get
 			{
+				if (!ElementExists(XMLNames.Bus_NumberPassengersLowerDeck))
+					return 0;
 				var node = GetNode(XMLNames.Bus_NumberPassengersLowerDeck);
 				return XmlConvert.ToInt32(node.InnerText);
 			}
@@ -1412,6 +1446,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 		{
 			get
 			{
+				if (!ElementExists(XMLNames.Bus_NumberPassengersUpperDeck))
+					return 0;
 				var node = GetNode(XMLNames.Bus_NumberPassengersUpperDeck);
 				return XmlConvert.ToInt32(node.InnerText);
 			}
@@ -1419,17 +1455,32 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 
 		public override VehicleCode? VehicleCode
 		{
-			get { return GetString(XMLNames.Vehicle_VehicleCode).ParseEnum<VehicleCode>(); }
+			get
+			{
+				return ElementExists(XMLNames.Vehicle_VehicleCode)
+					? GetString(XMLNames.Vehicle_VehicleCode).ParseEnum<VehicleCode>()
+					: (VehicleCode?)null;
+			}
 		}
 
 		public override bool? LowEntry
 		{
-			get { return GetBool(XMLNames.Bus_LowEntry); }
+			get
+			{
+				return ElementExists(XMLNames.Bus_LowEntry)
+					? GetBool(XMLNames.Bus_LowEntry)
+					: (bool?)null;
+			}
 		}
 
 		public override Meter Height
 		{
-			get { return GetDouble(XMLNames.Bus_HeighIntegratedBody).SI<Meter>(); }
+			get
+			{
+				return ElementExists(XMLNames.Bus_HeighIntegratedBody)
+					? GetDouble(XMLNames.Bus_HeighIntegratedBody).SI<Meter>()
+					: null;
+			}
 		}
 		
 		public override XmlElement PTONode
diff --git a/VectoCore/VectoCoreTest/XML/XMLMultistageBusInputDataTest.cs b/VectoCore/VectoCoreTest/XML/XMLMultistageBusInputDataTest.cs
index 2c1fde111df1a1c88b9adf0415bf689a6dd881d0..ea5c6ed0615fda36f2e89c5fa1f19e544252dd79 100644
--- a/VectoCore/VectoCoreTest/XML/XMLMultistageBusInputDataTest.cs
+++ b/VectoCore/VectoCoreTest/XML/XMLMultistageBusInputDataTest.cs
@@ -14,9 +14,12 @@ namespace TUGraz.VectoCore.Tests.XML
 	{
 		protected IXMLInputDataReader xmlInputReader;
 		private IKernel _kernel;
+		
+		const string DirPath = @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.8\";
+		const string VehicleInterimStageInput = DirPath + "vecto_vehicle-stage_input_full-sample.xml";
+		const string VehicleExemptedInterimStageInput = DirPath + "vecto_vehicle-exempted_input_full-sample.xml";
+		const string VehicleExemptedMandatoryOnly = DirPath + "vecto_vehicle-exempted_input_only_mandatory_entries.xml";
 
-		const string VehicleInterimStageInput = @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.8\vecto_vehicle-stage_input_full-sample.xml";
-		const string VehicleExemptedInterimStageInput = @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.8\vecto_vehicle-exempted_input_full-sample.xml";
 
 		[OneTimeSetUp]
 		public void RunBeforeAnyTests()
@@ -140,5 +143,31 @@ namespace TUGraz.VectoCore.Tests.XML
 			Assert.AreEqual(true, vehicle.LowEntry);
 			Assert.AreEqual(2500, vehicle.Height.Value());
 		}
+
+		[TestCase]
+		public void TestVehicleExemptedMandatoryInput()
+		{
+			var reader = XmlReader.Create(VehicleExemptedMandatoryOnly);
+			var inputDataProvider = xmlInputReader.CreateDeclaration(reader);
+			var vehicle = inputDataProvider.JobInputData.Vehicle;
+
+			Assert.AreEqual("VEH-1234567890", vehicle.Identifier);
+			Assert.AreEqual("Some Manufacturer 3", vehicle.Manufacturer);
+			Assert.AreEqual("Some Manufacturer Address 3", vehicle.ManufacturerAddress);
+			Assert.AreEqual("VEH-1234567891", vehicle.VIN);
+			Assert.AreEqual(DateTime.Parse("2021-01-09T11:00:00Z").ToUniversalTime(), vehicle.Date);
+
+			Assert.AreEqual(null, vehicle.Model);
+			Assert.AreEqual(null, vehicle.LegislativeClass);
+			Assert.AreEqual(null, vehicle.CurbMassChassis);
+			Assert.AreEqual(null, vehicle.GrossVehicleMassRating);
+			Assert.AreEqual(null, vehicle.RegisteredClass);
+			Assert.AreEqual(0, vehicle.NumberOfPassengersLowerDeck);
+			Assert.AreEqual(0, vehicle.NumberOfPassengersUpperDeck);
+			Assert.AreEqual(null, vehicle.VehicleCode);
+			Assert.AreEqual(null, vehicle.LowEntry);
+			Assert.AreEqual(null, vehicle.Height);
+			Assert.AreEqual(null, vehicle.Components);
+		}
 	}
 }