diff --git a/VECTO/Input Files/Vehicle.vb b/VECTO/Input Files/Vehicle.vb
index 90a9f182aaec69ef17dfad73bc48f7dfe439c486..dde47c8190239717692b5e9a747dbd7fcdb90db0 100644
--- a/VECTO/Input Files/Vehicle.vb	
+++ b/VECTO/Input Files/Vehicle.vb	
@@ -112,7 +112,7 @@ Public Class Vehicle
 				Dim segment As Segment = DeclarationData.Segments.Lookup(vehicle.VehicleCategory, vehicle.AxleConfiguration,
 																		vehicle.GrossVehicleMassRating, vehicle.CurbMassChassis, false)
 				vehicleData = doa.CreateVehicleData(vehicle, segment.Missions.First(),
-													segment.Missions.First().Loadings.First().Value)
+													segment.Missions.First().Loadings.First().Value, true)
 				airdragData = doa.CreateAirdragData(vehicle, segment.Missions.First(), segment)
 				retarderData = doa.CreateRetarderData(vehicle)
 				angledriveData = doa.CreateAngledriveData(vehicle)
diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs
index 098b5d1e511a1c205ee0f9f451b71860c4147928..addf852baa6a28db2dceb8f3190acf07d52f3761 100644
--- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs
+++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs
@@ -79,18 +79,18 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 			return retVal;
 		}
 
-		internal VehicleData CreateVehicleData(IVehicleDeclarationInputData data, Mission mission, Kilogram loading)
+		internal VehicleData CreateVehicleData(IVehicleDeclarationInputData data, Mission mission, Kilogram loading, bool allowVocational)
 		{
 			if (!data.SavedInDeclarationMode) {
 				WarnDeclarationMode("VehicleData");
 			}
 			return data.ExemptedVehicle
 				? CreateExemptedVehicleData(data)
-				: CreateNonExemptedVehicleData(data, mission, loading);
+				: CreateNonExemptedVehicleData(data, mission, loading, allowVocational);
 		}
 
 		private VehicleData CreateNonExemptedVehicleData(
-			IVehicleDeclarationInputData data, Mission mission, Kilogram loading)
+			IVehicleDeclarationInputData data, Mission mission, Kilogram loading, bool allowVocational)
 		{
 			var retVal = SetCommonVehicleData(data);
 			retVal.AxleConfiguration = data.AxleConfiguration;
@@ -111,7 +111,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 					.Average();
 			retVal.CargoVolume = mission.MissionType != MissionType.Construction ? mission.TotalCargoVolume : 0.SI<CubicMeter>();
 
-			retVal.VocationalVehicle = data.VocationalVehicle;
+			retVal.VocationalVehicle = allowVocational && data.VocationalVehicle;
 			retVal.ADAS = CreateADAS(data.ADAS);
 
 			var axles = data.Components.AxleWheels.AxlesDeclaration;
diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeVectoRunDataFactory.cs
index 041f8e37e0f3aef2f7f65ae5d3f59b054c279273..eba281e270f221d52660d8d17a374bb018339e69 100644
--- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeVectoRunDataFactory.cs
+++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeVectoRunDataFactory.cs
@@ -59,6 +59,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 		protected IDeclarationReport Report;
 		private DeclarationDataAdapter _dao;
 		private Segment _segment;
+		private bool allowVocational;
 		private DriverData _driverdata;
 		private AirdragData _airdragData;
 		private CombustionEngineData _engineData;
@@ -74,7 +75,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 		{
 			InputDataProvider = dataProvider;
 			Report = report;
-
+			allowVocational = true;
 			try {
 				Initialize();
 				if (Report != null) {
@@ -92,11 +93,23 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 			if (vehicle.ExemptedVehicle) {
 				return;
 			}
-			_segment = GetVehicleClassification(vehicle.VehicleCategory,
-				vehicle.AxleConfiguration,
-				vehicle.GrossVehicleMassRating,
-				vehicle.CurbMassChassis,
-				vehicle.VocationalVehicle);
+
+			try {
+				_segment = GetVehicleClassification(
+					vehicle.VehicleCategory,
+					vehicle.AxleConfiguration,
+					vehicle.GrossVehicleMassRating,
+					vehicle.CurbMassChassis,
+					vehicle.VocationalVehicle);
+			} catch (VectoException) {
+				allowVocational = false;
+				_segment = GetVehicleClassification(
+					vehicle.VehicleCategory,
+					vehicle.AxleConfiguration,
+					vehicle.GrossVehicleMassRating,
+					vehicle.CurbMassChassis,
+					false);
+			}
 			if (!_segment.Found) {
 				throw new VectoException(
 					"no segment found for vehicle configruation: vehicle category: {0}, axle configuration: {1}, GVMR: {2}",
@@ -106,7 +119,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 			_driverdata = _dao.CreateDriverData();
 			_driverdata.AccelerationCurve = AccelerationCurveReader.ReadFromStream(_segment.AccelerationFile);
 			var tempVehicle = _dao.CreateVehicleData(vehicle, _segment.Missions.First(),
-				_segment.Missions.First().Loadings.First().Value);
+				_segment.Missions.First().Loadings.First().Value, allowVocational);
 			_airdragData = _dao.CreateAirdragData(vehicle.Components.AirdragInputData,
 				_segment.Missions.First(), _segment);
 			_engineData = _dao.CreateEngineData(vehicle.Components.EngineInputData,
@@ -130,7 +143,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 			if (InputDataProvider.JobInputData.Vehicle.ExemptedVehicle) {
 				powertrainConfig = new VectoRunData() {
 					Exempted = true,
-					VehicleData = _dao.CreateVehicleData(InputDataProvider.JobInputData.Vehicle, null, null),
+					VehicleData = _dao.CreateVehicleData(InputDataProvider.JobInputData.Vehicle, null, null, allowVocational),
 					InputDataHash = InputDataProvider.XMLHash
 				};
 			} else {
@@ -138,7 +151,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 					VehicleData =
 						_dao.CreateVehicleData(
 							InputDataProvider.JobInputData.Vehicle, _segment.Missions.First(),
-							_segment.Missions.First().Loadings.First().Value),
+							_segment.Missions.First().Loadings.First().Value, allowVocational),
 					AirdragData = _airdragData,
 					EngineData = _engineData,
 					GearboxData = _gearboxData,
@@ -168,7 +181,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 						Exempted = true,
 						Report = Report,
 						Mission = new Mission() { MissionType = MissionType.ExemptedMission},
-						VehicleData = _dao.CreateVehicleData(InputDataProvider.JobInputData.Vehicle, null, null),
+						VehicleData = _dao.CreateVehicleData(InputDataProvider.JobInputData.Vehicle, null, null, allowVocational),
 						InputDataHash = InputDataProvider.XMLHash
 					};
 			} else {
@@ -201,7 +214,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 					var simulationRunData = new VectoRunData {
 						Loading = loading.Key,
 						VehicleDesignSpeed = _segment.DesignSpeed,
-						VehicleData = _dao.CreateVehicleData(vehicle, mission, loading.Value),
+						VehicleData = _dao.CreateVehicleData(vehicle, mission, loading.Value, allowVocational),
 						AirdragData = _dao.CreateAirdragData(vehicle.Components.AirdragInputData, mission, _segment),
 						EngineData = _engineData.Copy(), // a copy is necessary because every run has a different correction factor!
 						GearboxData = _gearboxData,
diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationVTPModeVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationVTPModeVectoRunDataFactory.cs
index b89cbc6dc7c188fdd546e048f542d9b9505972b6..5f812b4ddead01e1d581a3cc9d3666ae4db08784 100644
--- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationVTPModeVectoRunDataFactory.cs
+++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationVTPModeVectoRunDataFactory.cs
@@ -59,6 +59,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 		protected PTOData PTOTransmissionData;
 		protected List<VectoRunData.AuxData> AuxVTP;
 		protected Segment Segment;
+		protected bool allowVocational;
 		protected DeclarationDataAdapter Dao;
 		protected Exception InitException;
 
@@ -71,6 +72,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 		{
 			JobInputData = job;
 			Report = report;
+			allowVocational = true;
 			try {
 				Initialize();
 				if (Report != null) {
@@ -87,7 +89,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 				VehicleData =
 					Dao.CreateVehicleData(
 						JobInputData.Vehicle, Segment.Missions.First(),
-						Segment.Missions.First().Loadings.First().Value),
+						Segment.Missions.First().Loadings.First().Value, allowVocational),
 				AirdragData = AirdragData,
 				EngineData = EngineData,
 				GearboxData = GearboxData,
@@ -111,17 +113,27 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 		{
 			Dao = new DeclarationDataAdapter();
 			var vehicle = JobInputData.Vehicle;
-			Segment = DeclarationData.Segments.Lookup(
-				vehicle.VehicleCategory,
-				vehicle.AxleConfiguration,
-				vehicle.GrossVehicleMassRating,
-				vehicle.CurbMassChassis,
-				vehicle.VocationalVehicle);
+			try {
+				Segment = DeclarationData.Segments.Lookup(
+					vehicle.VehicleCategory,
+					vehicle.AxleConfiguration,
+					vehicle.GrossVehicleMassRating,
+					vehicle.CurbMassChassis,
+					vehicle.VocationalVehicle);
+			} catch (VectoException) {
+				allowVocational = false;
+				Segment = DeclarationData.Segments.Lookup(
+					vehicle.VehicleCategory,
+					vehicle.AxleConfiguration,
+					vehicle.GrossVehicleMassRating,
+					vehicle.CurbMassChassis,
+					false);
+			}
 			Driverdata = Dao.CreateDriverData();
 			Driverdata.AccelerationCurve = AccelerationCurveReader.ReadFromStream(Segment.AccelerationFile);
 			var tempVehicle = Dao.CreateVehicleData(
 				vehicle, Segment.Missions.First(),
-				Segment.Missions.First().Loadings.First().Value);
+				Segment.Missions.First().Loadings.First().Value, allowVocational);
 			AirdragData = Dao.CreateAirdragData(
 				vehicle.Components.AirdragInputData,
 				Segment.Missions.First(), Segment);
@@ -226,7 +238,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 				AngledriveData = AngledriveData,
 				VehicleData = Dao.CreateVehicleData(
 					JobInputData.Vehicle, mission,
-					loading),
+					loading, allowVocational),
 				AirdragData = AirdragData,
 				DriverData = null,
 				AdvancedAux = null,
diff --git a/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs b/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs
index 73ee6dfb09fcd741b13630e662597bfcf7b8c602..bb6bed91d383d781e850f43483c67b8e4164342f 100644
--- a/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs
+++ b/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs
@@ -590,46 +590,62 @@ namespace TUGraz.VectoCore.Tests.Models.Declaration
 		TestCase(VehicleCategory.Tractor, AxleConfiguration.AxleConfig_4x2, 7500.01, 0, false, VehicleClass.Class1),
 		TestCase(VehicleCategory.RigidTruck, AxleConfiguration.AxleConfig_4x2, 10000, 0, false, VehicleClass.Class1),
 		TestCase(VehicleCategory.Tractor, AxleConfiguration.AxleConfig_4x2, 10000, 0, false, VehicleClass.Class1),
+		TestCase(VehicleCategory.Tractor, AxleConfiguration.AxleConfig_4x2, 10000, 0, true, VehicleClass.Class1),
+
 		TestCase(VehicleCategory.RigidTruck, AxleConfiguration.AxleConfig_4x2, 10001, 0, false, VehicleClass.Class2),
 		TestCase(VehicleCategory.Tractor, AxleConfiguration.AxleConfig_4x2, 10001, 0, false, VehicleClass.Class2),
 		TestCase(VehicleCategory.RigidTruck, AxleConfiguration.AxleConfig_4x2, 12000, 0, false, VehicleClass.Class2),
 		TestCase(VehicleCategory.Tractor, AxleConfiguration.AxleConfig_4x2, 12000, 0, false, VehicleClass.Class2),
+		TestCase(VehicleCategory.Tractor, AxleConfiguration.AxleConfig_4x2, 12000, 0, true, VehicleClass.Class2),
+
 		TestCase(VehicleCategory.RigidTruck, AxleConfiguration.AxleConfig_4x2, 12001, 0, false, VehicleClass.Class3),
 		TestCase(VehicleCategory.Tractor, AxleConfiguration.AxleConfig_4x2, 12001, 0, false, VehicleClass.Class3),
 		TestCase(VehicleCategory.RigidTruck, AxleConfiguration.AxleConfig_4x2, 16000, 0, false, VehicleClass.Class3),
 		TestCase(VehicleCategory.Tractor, AxleConfiguration.AxleConfig_4x2, 16000, 0, false, VehicleClass.Class3),
+		TestCase(VehicleCategory.Tractor, AxleConfiguration.AxleConfig_4x2, 16000, 0, true, VehicleClass.Class3),
+
 		TestCase(VehicleCategory.RigidTruck, AxleConfiguration.AxleConfig_4x2, 16001, 0, false, VehicleClass.Class4),
 		TestCase(VehicleCategory.RigidTruck, AxleConfiguration.AxleConfig_4x2, 99000, 0, false, VehicleClass.Class4),
 		TestCase(VehicleCategory.RigidTruck, AxleConfiguration.AxleConfig_4x2, 16001, 0, true, VehicleClass.Class4),
 		TestCase(VehicleCategory.RigidTruck, AxleConfiguration.AxleConfig_4x2, 99000, 0, true, VehicleClass.Class4),
+
 		TestCase(VehicleCategory.Tractor, AxleConfiguration.AxleConfig_4x2, 16001, 0, false, VehicleClass.Class5),
 		TestCase(VehicleCategory.Tractor, AxleConfiguration.AxleConfig_4x2, 99000, 0, false, VehicleClass.Class5),
 		TestCase(VehicleCategory.Tractor, AxleConfiguration.AxleConfig_4x2, 16001, 0, true, VehicleClass.Class5),
 		TestCase(VehicleCategory.Tractor, AxleConfiguration.AxleConfig_4x2, 99000, 0, true, VehicleClass.Class5),
+
 		//TestCase(VehicleCategory.RigidTruck, AxleConfiguration.AxleConfig_4x4, 7500, 0, VehicleClass.Class6),
 		//TestCase(VehicleCategory.RigidTruck, AxleConfiguration.AxleConfig_4x4, 16000, 0, VehicleClass.Class6),
 		//TestCase(VehicleCategory.RigidTruck, AxleConfiguration.AxleConfig_4x4, 16001, 0, VehicleClass.Class7),
 		//TestCase(VehicleCategory.RigidTruck, AxleConfiguration.AxleConfig_4x4, 99000, 0, VehicleClass.Class7),
 		//TestCase(VehicleCategory.Tractor, AxleConfiguration.AxleConfig_4x4, 16000, 0, VehicleClass.Class8),
 		//TestCase(VehicleCategory.Tractor, AxleConfiguration.AxleConfig_4x4, 99000, 0, VehicleClass.Class8),
+
 		TestCase(VehicleCategory.RigidTruck, AxleConfiguration.AxleConfig_6x2, 7500, 0, false, VehicleClass.Class9),
 		TestCase(VehicleCategory.RigidTruck, AxleConfiguration.AxleConfig_6x2, 16000, 0, false, VehicleClass.Class9),
 		TestCase(VehicleCategory.RigidTruck, AxleConfiguration.AxleConfig_6x2, 40000, 0, false, VehicleClass.Class9),
 		TestCase(VehicleCategory.RigidTruck, AxleConfiguration.AxleConfig_6x2, 99000, 0, false, VehicleClass.Class9),
 		TestCase(VehicleCategory.RigidTruck, AxleConfiguration.AxleConfig_6x2, 7500, 0, true, VehicleClass.Class9),
 		TestCase(VehicleCategory.RigidTruck, AxleConfiguration.AxleConfig_6x2, 99000, 0, true, VehicleClass.Class9),
+
 		TestCase(VehicleCategory.Tractor, AxleConfiguration.AxleConfig_6x2, 7500, 0, false, VehicleClass.Class10),
 		TestCase(VehicleCategory.Tractor, AxleConfiguration.AxleConfig_6x2, 16000, 0, false, VehicleClass.Class10),
 		TestCase(VehicleCategory.Tractor, AxleConfiguration.AxleConfig_6x2, 40000, 0, false, VehicleClass.Class10),
 		TestCase(VehicleCategory.Tractor, AxleConfiguration.AxleConfig_6x2, 99000, 0, false, VehicleClass.Class10),
 		TestCase(VehicleCategory.Tractor, AxleConfiguration.AxleConfig_6x2, 7500, 0, true, VehicleClass.Class10),
 		TestCase(VehicleCategory.Tractor, AxleConfiguration.AxleConfig_6x2, 99000, 0, true, VehicleClass.Class10),
+
 		TestCase(VehicleCategory.RigidTruck, AxleConfiguration.AxleConfig_6x4, 7500, 0, false, VehicleClass.Class11),
 		TestCase(VehicleCategory.RigidTruck, AxleConfiguration.AxleConfig_6x4, 40000, 0, false, VehicleClass.Class11),
+		TestCase(VehicleCategory.RigidTruck, AxleConfiguration.AxleConfig_6x4, 40000, 0, true, VehicleClass.Class11),
+
 		TestCase(VehicleCategory.Tractor, AxleConfiguration.AxleConfig_6x4, 7500, 0, false, VehicleClass.Class12),
 		TestCase(VehicleCategory.Tractor, AxleConfiguration.AxleConfig_6x4, 99000, 0, false, VehicleClass.Class12),
+		TestCase(VehicleCategory.Tractor, AxleConfiguration.AxleConfig_6x4, 99000, 0, true, VehicleClass.Class12),
+
 		TestCase(VehicleCategory.RigidTruck, AxleConfiguration.AxleConfig_8x4, 7500, 0, false, VehicleClass.Class16),
-		TestCase(VehicleCategory.RigidTruck, AxleConfiguration.AxleConfig_8x4, 99000, 0, false, VehicleClass.Class16)
+		TestCase(VehicleCategory.RigidTruck, AxleConfiguration.AxleConfig_8x4, 99000, 0, false, VehicleClass.Class16),
+		TestCase(VehicleCategory.RigidTruck, AxleConfiguration.AxleConfig_8x4, 99000, 0, true, VehicleClass.Class16)
 		]
 		public void SegmentLookupTest(VehicleCategory category, AxleConfiguration axleConfiguration, double grossWeight,
 			double curbWeight, bool vocational, VehicleClass expectedClass)
diff --git a/VectoCore/VectoCoreTest/Models/Declaration/ShiftPolygonTest.cs b/VectoCore/VectoCoreTest/Models/Declaration/ShiftPolygonTest.cs
index 15407f73662ef2c8d33d2f13ee5a74c0ad024e6f..390ea45158c37115efdc708d1a68a1765e5e576c 100644
--- a/VectoCore/VectoCoreTest/Models/Declaration/ShiftPolygonTest.cs
+++ b/VectoCore/VectoCoreTest/Models/Declaration/ShiftPolygonTest.cs
@@ -879,7 +879,7 @@ namespace TUGraz.VectoCore.Tests.Models.Declaration
 			var segment = DeclarationData.Segments.Lookup(
 				vehicle.VehicleCategory, vehicle.AxleConfiguration, vehicle.GrossVehicleMassRating, vehicle.CurbMassChassis,
 				false);
-			var vehicleData = dao.CreateVehicleData(inputData.JobInputData.Vehicle, segment.Missions.First(), 0.SI<Kilogram>());
+			var vehicleData = dao.CreateVehicleData(inputData.JobInputData.Vehicle, segment.Missions.First(), 0.SI<Kilogram>(), true);
 			var rdyn = vehicleData.DynamicTyreRadius;
 
 			var shiftPolygons = new List<ShiftPolygon>();
diff --git a/VectoCore/VectoCoreTest/VectoCoreTest.csproj b/VectoCore/VectoCoreTest/VectoCoreTest.csproj
index d3029b8ae1dbd163c14bfc57e1153bc6f12099ac..e42c9e0937d7ec2a8c4882ca57f016f8a8b0b3df 100644
--- a/VectoCore/VectoCoreTest/VectoCoreTest.csproj
+++ b/VectoCore/VectoCoreTest/VectoCoreTest.csproj
@@ -117,6 +117,7 @@
     <Compile Include="Integration\TorqueLimitsTest.cs" />
     <Compile Include="Integration\XMLReportTest.cs" />
     <Compile Include="Models\Declaration\AirdragDefaultValuesTest.cs" />
+    <Compile Include="Models\Declaration\DataAdapter\DeclarationAdapterCreateVocationalVehicleTest.cs" />
     <Compile Include="Models\Declaration\DataAdapter\DeclarationAdapterTestHelper.cs" />
     <Compile Include="Models\Declaration\DataAdapter\DeclarationDataAdapterTest_Class5.cs" />
     <Compile Include="Models\Declaration\DataAdapter\DeclarationDataAdapterTest_Class2.cs" />