diff --git a/VectoCore/VectoCore/Models/Declaration/Axle.cs b/VectoCore/VectoCore/Models/Declaration/Axle.cs
index 8c80a9cafdcc671a67fc583058aff7405253cefd..15b27a6fe1dae4af8c5fe25e6efdea1e8c515f81 100644
--- a/VectoCore/VectoCore/Models/Declaration/Axle.cs
+++ b/VectoCore/VectoCore/Models/Declaration/Axle.cs
@@ -50,7 +50,7 @@ namespace TUGraz.VectoCore.Models.Declaration
 		[Required, SIRange(500, 100000)]
 		public Newton TyreTestLoad { get; internal set; }
 
-		[Required, SIRange(Double.MinValue, 1)]
+		[Required, SIRange(0, 1, ExecutionMode.Engineering), SIRange(double.MinValue, 1, ExecutionMode.Declaration)]
 		public double AxleWeightShare { get; internal set; }
 
 		public bool TwinTyres { get; internal set; }
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Data/VehicleData.cs b/VectoCore/VectoCore/Models/SimulationComponent/Data/VehicleData.cs
index 053a0a8fa52814cabfa089c8754704fadbb9525b..8d484b39a51d16d93be0be34fd71fcc74330a512 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Data/VehicleData.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Data/VehicleData.cs
@@ -155,13 +155,12 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
 			var rrc = 0.0.SI<Scalar>();
 			var wheelsInertia = 0.0.SI<KilogramSquareMeter>();
 			foreach (var axle in _axleData) {
+				if (axle.AxleWeightShare.IsEqual(0, 1e-12)) {
+					continue;
+				}
 				var nrWheels = axle.TwinTyres ? 4 : 2;
 				var baseValue = (axle.AxleWeightShare * TotalVehicleWeight() * g / axle.TyreTestLoad / nrWheels).Value();
-				//if (baseValue.IsEqual(0)) {
-				//	throw new VectoSimulationException(
-				//		"Axle Roll Resistance Coefficient could not be calculated. One of the values is 0: AxleWeightShare: {0}, TotalVehicleWeight: {1}, TyreTestLoad: {2}, nrWheels: {3}",
-				//		axle.AxleWeightShare, TotalVehicleWeight(), axle.TyreTestLoad, nrWheels);
-				//}
+
 				rrc += axle.AxleWeightShare * axle.RollResistanceCoefficient *
 						Math.Pow(baseValue, Physics.RollResistanceExponent - 1);
 				wheelsInertia += nrWheels * axle.Inertia;
@@ -175,6 +174,10 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
 		{
 			var mode = GetExecutionMode(validationContext);
 
+			if (vehicleData.AxleData.Count < 1) {
+				return new ValidationResult("At least two axles need to be specified");
+			}
+
 			var weightShareSum = vehicleData.AxleData.Sum(axle => axle.AxleWeightShare);
 			if (!weightShareSum.IsEqual(1.0, 1E-10)) {
 				return new ValidationResult(
@@ -202,6 +205,12 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
 			}
 			// vvvvvvv these checks apply only for declaration mode! vvvvvv
 
+			if (vehicleData.AxleConfiguration.NumAxles() != vehicleData.AxleData.Count) {
+				return
+					new ValidationResult(
+						string.Format("For a {0} type vehicle exactly {1} number of axles have to pe specified. Found {2}",
+							vehicleData.AxleConfiguration.GetName(), vehicleData.AxleConfiguration.NumAxles(), vehicleData.AxleData.Count));
+			}
 
 			if (vehicleData.TotalVehicleWeight() > gvwTotal) {
 				return new ValidationResult(