diff --git a/VectoCore/VectoCore/InputData/Reader/FullLoadCurveReader.cs b/VectoCore/VectoCore/InputData/Reader/FullLoadCurveReader.cs
index c8eb1db895ba4625d37aecdc695a38ebbcfa893e..7bb94ac86bac9d1a156f2f43c2f26ab10462e4c7 100644
--- a/VectoCore/VectoCore/InputData/Reader/FullLoadCurveReader.cs
+++ b/VectoCore/VectoCore/InputData/Reader/FullLoadCurveReader.cs
@@ -29,107 +29,107 @@
 *   Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology
 */
 
-using System;
-using System.Collections.Generic;
-using System.Data;
-using System.Linq;
-using TUGraz.VectoCommon.Exceptions;
-using TUGraz.VectoCommon.Models;
-using TUGraz.VectoCommon.Utils;
-using TUGraz.VectoCore.Models.Declaration;
-using TUGraz.VectoCore.Models.SimulationComponent.Data.Engine;
-using TUGraz.VectoCore.Utils;
-
-namespace TUGraz.VectoCore.InputData.Reader
-{
-	public static class FullLoadCurveReader
-	{
-		public static EngineFullLoadCurve ReadFromFile(string fileName, bool declarationMode = false)
-		{
-			try {
-				var data = VectoCSVFile.Read(fileName);
-				return Create(data, declarationMode);
-			} catch (Exception ex) {
-				throw new VectoException("ERROR while reading FullLoadCurve File: " + ex.Message, ex);
-			}
-		}
-
-		public static EngineFullLoadCurve Create(DataTable data, bool declarationMode = false)
-		{
-			if (data.Columns.Count < 3) {
-				throw new VectoException("Engine FullLoadCurve Data File must consist of at least 3 columns.");
-			}
-
-			if (data.Rows.Count < 2) {
-				throw new VectoException(
-					"FullLoadCurve must consist of at least two lines with numeric values (below file header)");
-			}
-
-			List<EngineFullLoadCurve.FullLoadCurveEntry> entriesFld;
-			if (HeaderIsValid(data.Columns)) {
-				entriesFld = CreateFromColumnNames(data);
-			} else {
-				LoggingObject.Logger<EngineFullLoadCurve>().Warn(
-					"FullLoadCurve: Header Line is not valid. Expected: '{0}, {1}, {2}', Got: '{3}'. Falling back to column index.",
-					Fields.EngineSpeed, Fields.TorqueFullLoad,
-					Fields.TorqueDrag, string.Join(", ", data.Columns.Cast<DataColumn>().Select(c => c.ColumnName)));
-
-				entriesFld = CreateFromColumnIndizes(data);
-			}
-
-			LookupData<PerSecond, PT1.PT1Result> tmp;
-			if (declarationMode) {
-				tmp = new PT1();
-			} else {
-				tmp = data.Columns.Count > 3 ? new PT1(data) : new PT1();
-			}
-			entriesFld.Sort((entry1, entry2) => entry1.EngineSpeed.Value().CompareTo(entry2.EngineSpeed.Value()));
-			return new EngineFullLoadCurve(entriesFld, tmp);
-		}
-
-		private static bool HeaderIsValid(DataColumnCollection columns)
-		{
-			return columns.Contains(Fields.EngineSpeed)
-					&& columns.Contains(Fields.TorqueFullLoad)
-					&& columns.Contains(Fields.TorqueDrag);
-		}
-
-		private static List<EngineFullLoadCurve.FullLoadCurveEntry> CreateFromColumnNames(DataTable data)
-		{
-			return (from DataRow row in data.Rows
-				select new EngineFullLoadCurve.FullLoadCurveEntry {
-					EngineSpeed = row.ParseDouble(Fields.EngineSpeed).RPMtoRad(),
-					TorqueFullLoad = row.ParseDouble(Fields.TorqueFullLoad).SI<NewtonMeter>(),
-					TorqueDrag = row.ParseDouble(Fields.TorqueDrag).SI<NewtonMeter>()
-				}).ToList();
-		}
-
-		private static List<EngineFullLoadCurve.FullLoadCurveEntry> CreateFromColumnIndizes(DataTable data)
-		{
-			return (from DataRow row in data.Rows
-				select new EngineFullLoadCurve.FullLoadCurveEntry {
-					EngineSpeed = row.ParseDouble(0).RPMtoRad(),
-					TorqueFullLoad = row.ParseDouble(1).SI<NewtonMeter>(),
-					TorqueDrag = row.ParseDouble(2).SI<NewtonMeter>()
-				}).ToList();
-		}
-
-		public static class Fields
-		{
-			/// <summary>
-			/// [rpm] engine speed
-			/// </summary>
-			public const string EngineSpeed = "engine speed";
-
-			/// <summary>
-			/// [Nm] full load torque
-			/// </summary>
-			public const string TorqueFullLoad = "full load torque";
-
-			/// <summary>
-			/// [Nm] motoring torque
-			/// </summary>
-			public const string TorqueDrag = "motoring torque";
-		}
-	}
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Linq;
+using TUGraz.VectoCommon.Exceptions;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.Models.Declaration;
+using TUGraz.VectoCore.Models.SimulationComponent.Data.Engine;
+using TUGraz.VectoCore.Utils;
+
+namespace TUGraz.VectoCore.InputData.Reader
+{
+	public static class FullLoadCurveReader
+	{
+		public static EngineFullLoadCurve ReadFromFile(string fileName, bool declarationMode = false)
+		{
+			try {
+				var data = VectoCSVFile.Read(fileName);
+				return Create(data, declarationMode);
+			} catch (Exception ex) {
+				throw new VectoException("ERROR while reading FullLoadCurve File: " + ex.Message, ex);
+			}
+		}
+
+		public static EngineFullLoadCurve Create(DataTable data, bool declarationMode = false)
+		{
+			if (data.Columns.Count < 3) {
+				throw new VectoException("Engine FullLoadCurve Data File must consist of at least 3 columns.");
+			}
+
+			if (data.Rows.Count < 2) {
+				throw new VectoException(
+					"FullLoadCurve must consist of at least two lines with numeric values (below file header)");
+			}
+
+			List<EngineFullLoadCurve.FullLoadCurveEntry> entriesFld;
+			if (HeaderIsValid(data.Columns)) {
+				entriesFld = CreateFromColumnNames(data);
+			} else {
+				LoggingObject.Logger<EngineFullLoadCurve>().Warn(
+					"FullLoadCurve: Header Line is not valid. Expected: '{0}, {1}, {2}', Got: '{3}'. Falling back to column index.",
+					Fields.EngineSpeed, Fields.TorqueFullLoad,
+					Fields.TorqueDrag, string.Join(", ", data.Columns.Cast<DataColumn>().Select(c => c.ColumnName)));
+
+				entriesFld = CreateFromColumnIndizes(data);
+			}
+
+			LookupData<PerSecond, PT1.PT1Result> tmp;
+			if (declarationMode) {
+				tmp = new PT1();
+			} else {
+				tmp = data.Columns.Count > 3 ? new PT1(data) : new PT1();
+			}
+			entriesFld.Sort((entry1, entry2) => entry1.EngineSpeed.Value().CompareTo(entry2.EngineSpeed.Value()));
+			return new EngineFullLoadCurve(entriesFld, tmp);
+		}
+
+		private static bool HeaderIsValid(DataColumnCollection columns)
+		{
+			return columns.Contains(Fields.EngineSpeed)
+					&& columns.Contains(Fields.TorqueFullLoad)
+					&& columns.Contains(Fields.TorqueDrag);
+		}
+
+		private static List<EngineFullLoadCurve.FullLoadCurveEntry> CreateFromColumnNames(DataTable data)
+		{
+			return (from DataRow row in data.Rows
+				select new EngineFullLoadCurve.FullLoadCurveEntry {
+					EngineSpeed = row.ParseDouble(Fields.EngineSpeed).RPMtoRad(),
+					TorqueFullLoad = row.ParseDouble(Fields.TorqueFullLoad).SI<NewtonMeter>(),
+					TorqueDrag = row.ParseDouble(Fields.TorqueDrag).SI<NewtonMeter>()
+				}).ToList();
+		}
+
+		private static List<EngineFullLoadCurve.FullLoadCurveEntry> CreateFromColumnIndizes(DataTable data)
+		{
+			return (from DataRow row in data.Rows
+				select new EngineFullLoadCurve.FullLoadCurveEntry {
+					EngineSpeed = row.ParseDouble(0).RPMtoRad(),
+					TorqueFullLoad = row.ParseDouble(1).SI<NewtonMeter>(),
+					TorqueDrag = row.ParseDouble(2).SI<NewtonMeter>()
+				}).ToList();
+		}
+
+		public static class Fields
+		{
+			/// <summary>
+			/// [rpm] engine speed
+			/// </summary>
+			public const string EngineSpeed = "engine speed";
+
+			/// <summary>
+			/// [Nm] full load torque
+			/// </summary>
+			public const string TorqueFullLoad = "full load torque";
+
+			/// <summary>
+			/// [Nm] motoring torque
+			/// </summary>
+			public const string TorqueDrag = "motoring torque";
+		}
+	}
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCore/Models/Declaration/Segments.cs b/VectoCore/VectoCore/Models/Declaration/Segments.cs
index ee258eb3dc4cc846f63a7f9a46eb7657c8fc6aa4..f9e89983f303ea9f82d50780d58d349e85b910d9 100644
--- a/VectoCore/VectoCore/Models/Declaration/Segments.cs
+++ b/VectoCore/VectoCore/Models/Declaration/Segments.cs
@@ -130,7 +130,7 @@ namespace TUGraz.VectoCore.Models.Declaration
 				var errorMessage = string.Format(ErrorMessage, vehicleCategory, axleConfiguration.GetName(),
 					grossVehicleMassRating);
 				Log.Fatal(errorMessage);
-				throw new VectoException(errorMessage, e);
+				throw new VectoException(errorMessage, e); 
 			}
 			return row;
 		}
diff --git a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs
index c49484397340ceece9f4ee713066f5d6618fd144..cd8e02123c5fcfd9655c3b31ce0041886c57b222 100644
--- a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs
+++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs
@@ -190,9 +190,12 @@ namespace TUGraz.VectoCore.OutputData.XML
 				new XElement(tns + "FuelConsumption", new XAttribute("unit", "g/t-km"),
 					(result.FuelConsumptionTotal.ConvertTo().Gramm / result.Distance.ConvertTo().Kilo.Meter /
 					result.Payload.ConvertTo().Ton).Value().ToMinSignificantDigits(3, 1)),
-				new XElement(tns + "FuelConsumption", new XAttribute("unit", "g/m³-km"),
-					(result.FuelConsumptionTotal.ConvertTo().Gramm / result.Distance.ConvertTo().Kilo.Meter / result.CargoVolume).Value
-						().ToMinSignificantDigits(3, 1))
+				result.CargoVolume > 0
+					? new XElement(tns + "FuelConsumption", new XAttribute("unit", "g/m³-km"),
+						(result.FuelConsumptionTotal.ConvertTo().Gramm / result.Distance.ConvertTo().Kilo.Meter / result.CargoVolume)
+							.Value
+							().ToMinSignificantDigits(3, 1))
+					: null
 			};
 			//FC
 			if (fullOutput) {
@@ -201,9 +204,11 @@ namespace TUGraz.VectoCore.OutputData.XML
 				retVal.Add(new XElement(tns + "FuelConsumption", new XAttribute("unit", "MJ/t-km"),
 					(result.EnergyConsumptionTotal / result.Distance.ConvertTo().Kilo.Meter / result.Payload.ConvertTo().Ton / 1e6)
 						.Value().ToMinSignificantDigits(3, 1)));
-				retVal.Add(new XElement(tns + "FuelConsumption", new XAttribute("unit", "MJ/m³-km"),
-					(result.EnergyConsumptionTotal / result.Distance.ConvertTo().Kilo.Meter / result.CargoVolume / 1e6).Value()
-						.ToMinSignificantDigits(3, 1)));
+				if (result.CargoVolume > 0) {
+					retVal.Add(new XElement(tns + "FuelConsumption", new XAttribute("unit", "MJ/m³-km"),
+						(result.EnergyConsumptionTotal / result.Distance.ConvertTo().Kilo.Meter / result.CargoVolume / 1e6).Value()
+							.ToMinSignificantDigits(3, 1)));
+				}
 			}
 			if (fuel.FuelDensity != null) {
 				retVal.Add(new XElement(tns + "FuelConsumption", new XAttribute("unit", "l/100km"),
@@ -212,9 +217,11 @@ namespace TUGraz.VectoCore.OutputData.XML
 				retVal.Add(new XElement(tns + "FuelConsumption", new XAttribute("unit", "l/t-km"),
 					(result.FuelConsumptionTotal.ConvertTo().Gramm / fuel.FuelDensity / result.Distance.ConvertTo().Kilo.Meter /
 					result.Payload.ConvertTo().Ton).Value().ToMinSignificantDigits(3, 1)));
-				retVal.Add(new XElement(tns + "FuelConsumption", new XAttribute("unit", "l/m³-km"),
-					(result.FuelConsumptionTotal.ConvertTo().Gramm / fuel.FuelDensity / result.Distance.ConvertTo().Kilo.Meter /
-					result.CargoVolume).Value().ToMinSignificantDigits(3, 1)));
+				if (result.CargoVolume > 0) {
+					retVal.Add(new XElement(tns + "FuelConsumption", new XAttribute("unit", "l/m³-km"),
+						(result.FuelConsumptionTotal.ConvertTo().Gramm / fuel.FuelDensity / result.Distance.ConvertTo().Kilo.Meter /
+						result.CargoVolume).Value().ToMinSignificantDigits(3, 1)));
+				}
 			}
 			//CO2
 			retVal.Add(new XElement(tns + "CO2", new XAttribute("unit", "g/km"),
@@ -222,9 +229,11 @@ namespace TUGraz.VectoCore.OutputData.XML
 			retVal.Add(new XElement(tns + "CO2", new XAttribute("unit", "g/t-km"),
 				(result.CO2Total.ConvertTo().Gramm / result.Distance.ConvertTo().Kilo.Meter /
 				result.Payload.ConvertTo().Ton).Value().ToMinSignificantDigits(3, 1)));
-			retVal.Add(new XElement(tns + "CO2", new XAttribute("unit", "g/m³-km"),
-				(result.CO2Total.ConvertTo().Gramm / result.Distance.ConvertTo().Kilo.Meter / result.CargoVolume).Value()
-					.ToMinSignificantDigits(3, 1)));
+			if (result.CargoVolume > 0) {
+				retVal.Add(new XElement(tns + "CO2", new XAttribute("unit", "g/m³-km"),
+					(result.CO2Total.ConvertTo().Gramm / result.Distance.ConvertTo().Kilo.Meter / result.CargoVolume).Value()
+						.ToMinSignificantDigits(3, 1)));
+			}
 
 			return retVal;
 		}