diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/VectoRun.cs b/VectoCore/VectoCore/Models/Simulation/Impl/VectoRun.cs
index 93fdc5cf2ce22bef60d538e26c89e421417dde7b..2eac8a330a31d3c4f6dac2fbf44de97bef48e2aa 100644
--- a/VectoCore/VectoCore/Models/Simulation/Impl/VectoRun.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Impl/VectoRun.cs
@@ -192,7 +192,10 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 					Run();
 				},
 				this,
-				() => Container.FinishSingleSimulationRun()) ?? false;
+				() => {
+					Container.RunData.Report.PrepareResult(null); //<- increase number of expected results;
+                    Container.FinishSingleSimulationRun();
+				}) ?? false;
 			if (!runAgain) {
 				Container.FinishSimulationRun();
 				WritingResultsDone = true;
diff --git a/VectoCore/VectoCore/Models/Simulation/SimulationFactoryNinjectModule.cs b/VectoCore/VectoCore/Models/Simulation/SimulationFactoryNinjectModule.cs
index 477a70e70dae02d410aa0a682685088bce2e0d94..8124db93853a8011497260a326936009fc0ce3f0 100644
--- a/VectoCore/VectoCore/Models/Simulation/SimulationFactoryNinjectModule.cs
+++ b/VectoCore/VectoCore/Models/Simulation/SimulationFactoryNinjectModule.cs
@@ -29,6 +29,7 @@
 *   Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology
 */
 
+using System.Runtime.CompilerServices;
 using Ninject.Extensions.Factory;
 using Ninject.Modules;
 using TUGraz.VectoCommon.InputData;
@@ -65,7 +66,7 @@ namespace TUGraz.VectoCore.Models.Simulation
 	internal class NullDeclarationReport : IDeclarationReport
 	{
 		#region Implementation of IDeclarationReport
-
+		private int _addedResults = 0;
 		public void InitializeReport(VectoRunData modelData)
 		{
 
@@ -76,9 +77,10 @@ namespace TUGraz.VectoCore.Models.Simulation
 
 		}
 
+		[MethodImpl(MethodImplOptions.Synchronized)]
 		public void AddResult(VectoRunData runData, IModalDataContainer modData)
 		{
-
+			_addedResults++;
 		}
 
 		public IPrimaryVehicleInformationInputDataProvider PrimaryResults { get; set; }
diff --git a/VectoCore/VectoCore/OutputData/DeclarationReport.cs b/VectoCore/VectoCore/OutputData/DeclarationReport.cs
index d1437ad5536236af134480d21c49b135b59ce9ee..b699920dd7c54af7230f02b7ca1f04176ebda37f 100644
--- a/VectoCore/VectoCore/OutputData/DeclarationReport.cs
+++ b/VectoCore/VectoCore/OutputData/DeclarationReport.cs
@@ -185,7 +185,7 @@ namespace TUGraz.VectoCore.OutputData
 	/// <summary>
 	/// Class for creating a declaration report.
 	/// </summary>
-	public abstract class DeclarationReport<T> : IDeclarationReport where T : IResultEntry, new()
+	public abstract class DeclarationReport<T> : IDeclarationReport where T : class, IResultEntry, new()
 	{
 		public class ResultContainer<TEntry>
 		{
@@ -250,8 +250,15 @@ namespace TUGraz.VectoCore.OutputData
 				var entry = new T();
 				entry.Initialize(runData);
 				lock (Results) {
+					var exístingResult = Results.SingleOrDefault(e =>
+						e.Mission == entry.Mission && e.LoadingType == entry.LoadingType && e.OVCMode == entry.OVCMode);
+					if (exístingResult != null) {
+						//We already have a result for this run stored, this can happen with iterative runs, in this case we have to remove the old result
+						Results.Remove(exístingResult);
+					}
+
 					Results.Add(entry);
-                }
+				}
 				
 				DoStoreResult(entry, runData, modData);
 			}
diff --git a/VectoCore/VectoCoreTest/Integration/Declaration/HeavyLorry/LorrySimulation.cs b/VectoCore/VectoCoreTest/Integration/Declaration/HeavyLorry/LorrySimulation.cs
index 90ec851b56e1f5ab518dcaea912232c9d137e3f7..ba4bca4ac960c627bab9f68d92a1314c0bfa736e 100644
--- a/VectoCore/VectoCoreTest/Integration/Declaration/HeavyLorry/LorrySimulation.cs
+++ b/VectoCore/VectoCoreTest/Integration/Declaration/HeavyLorry/LorrySimulation.cs
@@ -113,7 +113,7 @@ public class LorrySimulation
 	[TestCase(@"MediumLorry\PEV\Group5_ PEV_E3_ES_Standard.xml")]
 	public void MediumLorrySimulationTest(string jobFile)
 	{
-		RunSimulation(jobFile, true);
+		RunSimulation(jobFile, true, false);
 	}
 
 	[TestCase(@"HeavyLorry\Exempted\exempted_heavy_lorry.xml")]
@@ -234,6 +234,7 @@ public class LorrySimulation
 		}
 	}
 
+#region VSUM_HELPER
 	private void GetEmptySumAndModData(string jobFile, out SummaryDataContainer sumDataContainer, out IVectoRun run,
 		out TableData modData, out TableData sumData)
 	{
@@ -450,7 +451,7 @@ public class LorrySimulation
 			SearchForPattern(sumData,GbxTimeShareFields());
 		}
 	}
-
+	#endregion
 
 	[TestCase(@"HeavyLorry\S-HEV\Group2_HEV_S4_invalid_pto.xml")]
 	[TestCase(@"HeavyLorry\PEV\PEV_heavyLorry_E3_pto_transmission_invalid.xml")]
@@ -505,7 +506,8 @@ public class LorrySimulation
 	[TestCase(Group5_HEV_P3_OVC, 20)]
 	[TestCase(Group5_HEV_P4_OVC, 20)]
 	[TestCase(Group5_HEV_P2_5_OVC, 20)]
-	public void PHEV_ChargeSustainingIt(string jobFile, int nrRuns)
+	[TestCase(@"MediumLorry\P-HEV\Group5_HEV_P3_ovc.xml", 8, MissionType.UrbanDelivery, LoadingType.LowLoading)]
+	public void PHEV_ChargeSustainingIt(string jobFile, int nrRuns, MissionType? missionType = MissionType.UrbanDelivery, LoadingType? loadingType = LoadingType.ReferenceLoad)
 	{
 		var jobContainer = GetJobContainer(jobFile, nrRuns, out var fileWriter, out var runs, out var sumDataContainer);
 
@@ -514,7 +516,7 @@ public class LorrySimulation
 		runs = runs.Where(run => {
 			var rd = run.GetContainer().RunData;
 			return rd.OVCMode == VectoRunData.OvcHevMode.ChargeSustaining &&
-					rd.Mission.MissionType == MissionType.UrbanDelivery && rd.Loading == LoadingType.ReferenceLoad;
+					rd.Mission.MissionType == MissionType.UrbanDelivery && rd.Loading == loadingType;
 		}).ToList();
 		
 		jobContainer.AddRun(runs.Single());
@@ -557,18 +559,17 @@ public class LorrySimulation
 	[TestCase(@"HeavyLorry\P-HEV\Group5_HEV_IHPC.xml", 20)]
 	[TestCase(@"HeavyLorry\P-HEV\Group5_HEV_P2_OVC_stefan.xml", 20, MissionType.UrbanDelivery, LoadingType.LowLoading)]
 	[TestCase(@"HeavyLorry\P-HEV\Group5_HEV_P3_OVC_stefan.xml", 20)]
-    public void PHEV_ChargeDepleting(string jobFile, int nrRuns, MissionType? missionType = null, LoadingType? loadingType = null)
+    public void PHEV_ChargeDepleting(string jobFile, int nrRuns, MissionType? missionType = MissionType.UrbanDelivery, LoadingType? loadingType = LoadingType.ReferenceLoad)
 	{
 		var jobContainer = GetJobContainer(jobFile, nrRuns, out var fileWriter, out var runs, out var sumDataContainer);
 
-		var mission = missionType ?? MissionType.UrbanDelivery;
-		var loading = loadingType ?? LoadingType.ReferenceLoad;
+
 		Assert.AreEqual(0, runs.Count(r => r.GetContainer().RunData.OVCMode == VectoRunData.OvcHevMode.NotApplicable));
 
 		runs = runs.Where(run => {
 			var rd = run.GetContainer().RunData;
 			return rd.OVCMode == VectoRunData.OvcHevMode.ChargeDepleting &&
-					rd.Mission.MissionType == mission && rd.Loading == loading;
+					rd.Mission.MissionType == missionType && rd.Loading == loadingType;
 		}).ToList();
 
 		jobContainer.AddRun(runs.Single());