diff --git a/VectoCore/VectoCore/Models/Connector/Ports/Impl/Response.cs b/VectoCore/VectoCore/Models/Connector/Ports/Impl/Response.cs
index 952236e912c1410ecdb362b594388d9d8042b10b..30faa78b2b29dd4ffb9160db75584115a5be4639 100644
--- a/VectoCore/VectoCore/Models/Connector/Ports/Impl/Response.cs
+++ b/VectoCore/VectoCore/Models/Connector/Ports/Impl/Response.cs
@@ -29,107 +29,107 @@
 *   Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology
 */
 
-using System.Linq;
-using TUGraz.VectoCommon.Models;
-using TUGraz.VectoCommon.Utils;
-using TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox;
-
-namespace TUGraz.VectoCore.Models.Connector.Ports.Impl
-{
-	public abstract class AbstractResponse : IResponse
-	{
-		public object Source { get; set; }
-
-		public Second AbsTime { get; set; }
-		public Second SimulationInterval { get; set; }
-		public Meter SimulationDistance { get; set; }
-		public MeterPerSquareSecond Acceleration { get; set; }
-		public OperatingPoint OperatingPoint { get; set; }
-		public PerSecond EngineSpeed { get; set; }
-
-		public Watt EnginePowerRequest { get; set; }
-		public Watt DynamicFullLoadPower { get; set; }
-		public Watt DragPower { get; set; }
-
-		public Watt AngledrivePowerRequest { get; set; }
-		public Watt ClutchPowerRequest { get; set; }
-		public Watt GearboxPowerRequest { get; set; }
-		public Watt AxlegearPowerRequest { get; set; }
-		public Watt WheelsPowerRequest { get; set; }
-		public Watt VehiclePowerRequest { get; set; }
-		public Watt BrakePower { get; set; }
-		public Watt AuxiliariesPowerDemand { get; set; }
-
-		public TorqueConverterOperatingPoint TorqueConverterOperatingPoint { get; set; }
-
-		public override string ToString()
-		{
-			var t = GetType();
-			return string.Format("{0}{{{1}}}", t.Name,
-				string.Join(", ", t.GetProperties().Select(p => string.Format("{0}: {1}", p.Name, p.GetValue(this)))));
-		}
-	}
-
-	/// <summary>
-	/// Response when the Cycle is finished.
-	/// </summary>
-	public class ResponseCycleFinished : AbstractResponse {}
-
-	/// <summary>
-	/// Response when a request was successful.
-	/// </summary>
-	public class ResponseSuccess : AbstractResponse {}
-
-	/// <summary>
-	/// Response when the request resulted in an engine or gearbox overload. 
-	/// </summary>
-	public class ResponseOverload : AbstractResponse
-	{
-		public Watt Delta { get; set; }
-	}
-
-	/// <summary>
-	/// Response when the request resulted in an engine under-load. 
-	/// </summary>
-	public class ResponseUnderload : AbstractResponse
-	{
-		public Watt Delta { get; set; }
-	}
-
-	/// <summary>
-	/// Response when the Speed Limit was exceeded.
-	/// </summary>
-	public class ResponseSpeedLimitExceeded : AbstractResponse {}
-
-	/// <summary>
-	/// Response when the request should have another time interval.
-	/// </summary>
-	public class ResponseFailTimeInterval : AbstractResponse
-	{
-		public Second DeltaT { get; set; }
-	}
-
-	public class ResponseDrivingCycleDistanceExceeded : AbstractResponse
-	{
-		public Meter MaxDistance { get; set; }
-	}
-
-	internal class ResponseDryRun : AbstractResponse
-	{
-		public Watt DeltaFullLoad { get; set; }
-		public Watt DeltaDragLoad { get; set; }
-		public PerSecond DeltaEngineSpeed { get; set; }
-	}
-
-	internal class ResponseGearShift : AbstractResponse
-	{}
-
-/*
-	internal class ResponseEngineSpeedTooLow : ResponseDryRun {}
-*/
-
-	internal class ResponseEngineSpeedTooHigh : AbstractResponse
-	{
-		public PerSecond DeltaEngineSpeed { get; set; }	
-	}
+using System.Linq;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox;
+
+namespace TUGraz.VectoCore.Models.Connector.Ports.Impl
+{
+	public abstract class AbstractResponse : IResponse
+	{
+		public object Source { get; set; }
+
+		public Second AbsTime { get; set; }
+		public Second SimulationInterval { get; set; }
+		public Meter SimulationDistance { get; set; }
+		public MeterPerSquareSecond Acceleration { get; set; }
+		public OperatingPoint OperatingPoint { get; set; }
+		public PerSecond EngineSpeed { get; set; }
+
+		public Watt EnginePowerRequest { get; set; }
+		public Watt DynamicFullLoadPower { get; set; }
+		public Watt DragPower { get; set; }
+
+		public Watt AngledrivePowerRequest { get; set; }
+		public Watt ClutchPowerRequest { get; set; }
+		public Watt GearboxPowerRequest { get; set; }
+		public Watt AxlegearPowerRequest { get; set; }
+		public Watt WheelsPowerRequest { get; set; }
+		public Watt VehiclePowerRequest { get; set; }
+		public Watt BrakePower { get; set; }
+		public Watt AuxiliariesPowerDemand { get; set; }
+
+		public TorqueConverterOperatingPoint TorqueConverterOperatingPoint { get; set; }
+
+		public override string ToString()
+		{
+			var t = GetType();
+			return string.Format("{0}{{{1}}}", t.Name,
+				string.Join(", ", t.GetProperties().Select(p => string.Format("{0}: {1}", p.Name, p.GetValue(this)))));
+		}
+	}
+
+	/// <summary>
+	/// Response when the Cycle is finished.
+	/// </summary>
+	public class ResponseCycleFinished : AbstractResponse {}
+
+	/// <summary>
+	/// Response when a request was successful.
+	/// </summary>
+	public class ResponseSuccess : AbstractResponse {}
+
+	/// <summary>
+	/// Response when the request resulted in an engine or gearbox overload. 
+	/// </summary>
+	public class ResponseOverload : AbstractResponse
+	{
+		public Watt Delta { get; set; }
+	}
+
+	/// <summary>
+	/// Response when the request resulted in an engine under-load. 
+	/// </summary>
+	public class ResponseUnderload : AbstractResponse
+	{
+		public Watt Delta { get; set; }
+	}
+
+	/// <summary>
+	/// Response when the Speed Limit was exceeded.
+	/// </summary>
+	public class ResponseSpeedLimitExceeded : AbstractResponse {}
+
+	/// <summary>
+	/// Response when the request should have another time interval.
+	/// </summary>
+	public class ResponseFailTimeInterval : AbstractResponse
+	{
+		public Second DeltaT { get; set; }
+	}
+
+	public class ResponseDrivingCycleDistanceExceeded : AbstractResponse
+	{
+		public Meter MaxDistance { get; set; }
+	}
+
+	internal class ResponseDryRun : AbstractResponse
+	{
+		public Watt DeltaFullLoad { get; set; }
+		public Watt DeltaDragLoad { get; set; }
+		public PerSecond DeltaEngineSpeed { get; set; }
+	}
+
+	internal class ResponseGearShift : AbstractResponse
+	{}
+
+/*
+	internal class ResponseEngineSpeedTooLow : ResponseDryRun {}
+*/
+
+	internal class ResponseEngineSpeedTooHigh : AbstractResponse
+	{
+		public PerSecond DeltaEngineSpeed { get; set; }	
+	}
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs
index a48aebc58f697f75ccd0fdcccbd166dc2f7532af..ccb327146c37dad75928cb500a998b2690516157 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs
@@ -611,6 +611,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 				if (_idleStart == null) {
 					_idleStart = absTime;
 					_lastEnginePower = _engine.PreviousState.EnginePower;
+					_engineTargetSpeed = _engine.EngineIdleSpeed;
 				}
 				if (_lastEnginePower == null) {
 					_lastEnginePower = _engine.PreviousState.EnginePower;
diff --git a/VectoCore/VectoCoreTest/VectoCoreTest.csproj b/VectoCore/VectoCoreTest/VectoCoreTest.csproj
index de45436c96a9cb4cb570a0dce3f65afbe80ae00b..2ed40fbeaef749294c4aef5a848ff2ee2610cbf3 100644
--- a/VectoCore/VectoCoreTest/VectoCoreTest.csproj
+++ b/VectoCore/VectoCoreTest/VectoCoreTest.csproj
@@ -175,6 +175,7 @@
     <Compile Include="XML\XMLDeclarationInputTest.cs" />
     <Compile Include="XML\XMLEngineeringInputRefTest.cs" />
     <Compile Include="XML\XMLEngineeringInputSingleTest.cs" />
+    <Compile Include="XML\XMLReportTest.cs" />
     <Compile Include="XML\XMLWritingTest.cs" />
   </ItemGroup>
   <ItemGroup>
diff --git a/VectoCore/VectoCoreTest/XML/XMLReportTest.cs b/VectoCore/VectoCoreTest/XML/XMLReportTest.cs
new file mode 100644
index 0000000000000000000000000000000000000000..a2f515f466b38755ace16ed6f4c7fbdc3dec6107
--- /dev/null
+++ b/VectoCore/VectoCoreTest/XML/XMLReportTest.cs
@@ -0,0 +1,85 @@
+using System;
+using System.IO;
+using System.Xml;
+using System.Xml.Schema;
+using NUnit.Framework;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCore.InputData.FileIO.XML.Declaration;
+using TUGraz.VectoCore.Models.Simulation.Impl;
+using TUGraz.VectoCore.OutputData;
+using TUGraz.VectoCore.OutputData.FileIO;
+using TUGraz.VectoCore.Utils;
+
+namespace TUGraz.VectoCore.Tests.XML
+{
+	public class XMLReportTest
+	{
+		const string SampleVehicleDecl = "TestData/XML/XMLReaderDeclaration/vecto_vehicle-sample.xml";
+		
+		[OneTimeSetUp]
+		public void RunBeforeAnyTests()
+		{
+			Directory.SetCurrentDirectory(TestContext.CurrentContext.TestDirectory);
+		}
+
+		[TestCase(SampleVehicleDecl)]
+		public void RunDeclarationJob(string filename)
+		{
+			var fileWriter = new FileOutputWriter(filename);
+			var sumWriter = new SummaryDataContainer(fileWriter);
+			var jobContainer = new JobContainer(sumWriter);
+			var dataProvider = new XMLDeclarationInputDataProvider(XmlReader.Create(filename), true);
+			var runsFactory = new SimulatorFactory(ExecutionMode.Declaration, dataProvider, fileWriter) {
+				ModalResults1Hz = false,
+				WriteModalResults = false,
+				ActualModalData = false,
+				Validate = false,
+			};
+			jobContainer.AddRuns(runsFactory);
+			jobContainer.Execute();
+			jobContainer.WaitFinished();
+
+			var customerRecord = fileWriter.XMLCustomerReportName;
+			var manufacturerRecord = fileWriter.XMLFullReportName;
+
+			Assert.IsTrue(DoValidation(XmlReader.Create(customerRecord)));
+			Assert.IsTrue(DoValidation(XmlReader.Create(manufacturerRecord)));
+		}
+
+		private bool DoValidation(XmlReader hashedComponent)
+		{
+			var settings = new XmlReaderSettings {
+				ValidationType = ValidationType.Schema,
+				ValidationFlags = //XmlSchemaValidationFlags.ProcessInlineSchema |
+					//XmlSchemaValidationFlags.ProcessSchemaLocation |
+					XmlSchemaValidationFlags.ReportValidationWarnings
+			};
+			//settings.ValidationEventHandler += new ValidationEventHandler(ValidationCallBack);
+			settings.Schemas.Add(GetXMLSchema(""));
+
+			var vreader = XmlReader.Create(hashedComponent, settings);
+			var doc = new XmlDocument();
+			doc.Load(vreader);
+			doc.Validate(ValidationCallBack);
+			return true;
+		}
+
+		private void ValidationCallBack(object sender, ValidationEventArgs args)
+		{
+			throw new Exception("Validation failed");
+		}
+
+		private static XmlSchemaSet GetXMLSchema(string version)
+		{
+			var xset = new XmlSchemaSet() { XmlResolver = new XmlResourceResolver() };
+			foreach (var schema in new[] { "VectoComponent.xsd", "VectoInput.xsd", "VectoOutputManufacturer.xsd", "VectoOutputCustomer.xsd" }) {
+				var resource = RessourceHelper.LoadResourceAsStream(RessourceHelper.ResourceType.XMLSchema, schema);
+
+				var reader = XmlReader.Create(resource, new XmlReaderSettings(), "schema://");
+				xset.Add(XmlSchema.Read(reader, null));
+			}
+			xset.Compile();
+			return xset;
+		}
+	}
+}
\ No newline at end of file