diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdaper/AbstractSimulationDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdaper/AbstractSimulationDataAdapter.cs
index df12d36b57f7631ca9762dd2850c4f5dcbd5fe40..81a5721df36b1909824a681ef03848122ba24718 100644
--- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdaper/AbstractSimulationDataAdapter.cs
+++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdaper/AbstractSimulationDataAdapter.cs
@@ -164,6 +164,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper
 			if (gearCurve == null) {
 				return engineCurve;
 			}
+			// TODO MK-2016-04-18: also combine the curves at the intersection-points of line segments!
 			var entries =
 				gearCurve.FullLoadEntries.Concat(engineCurve.FullLoadEntries)
 					.OrderBy(x => x.EngineSpeed)
diff --git a/VectoCore/VectoCore/Models/Connector/Ports/Impl/Response.cs b/VectoCore/VectoCore/Models/Connector/Ports/Impl/Response.cs
index e920c265bba109a8c6de9bd340ca0fdfafddd9e1..f594056130543d10d0d76a222d8178ec09806b29 100644
--- a/VectoCore/VectoCore/Models/Connector/Ports/Impl/Response.cs
+++ b/VectoCore/VectoCore/Models/Connector/Ports/Impl/Response.cs
@@ -81,7 +81,10 @@ namespace TUGraz.VectoCore.Models.Connector.Ports.Impl
 	/// <summary>
 	/// Response when a request was successful.
 	/// </summary>
-	public class ResponseSuccess : AbstractResponse {}
+	public class ResponseSuccess : AbstractResponse
+	{
+		public ResponseSuccess() {}
+	}
 
 	/// <summary>
 	/// Response when the request resulted in an engine or gearbox overload. 
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs
index 9519670635d8c6f09c41844e4744390192df2b2f..2a265f4044196ecc5cc23034d54c16145336f3b7 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs
@@ -258,7 +258,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 			return new ResponseSuccess {
 				EnginePowerRequest = totalTorqueDemand * avgEngineSpeed,
 				AuxiliariesPowerDemand = auxTorqueDemand * avgEngineSpeed,
-				EngineSpeed = angularVelocity
+				EngineSpeed = angularVelocity,
+				Source = this
 			};
 		}
 
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/EngineOnlyCombustionEngine.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/EngineOnlyCombustionEngine.cs
index e5f90c434aeb59f6b40bfdbf38acd7a539314687..e867f7c0e278066de42e1ec85583fad4a6f4d007 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/EngineOnlyCombustionEngine.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/EngineOnlyCombustionEngine.cs
@@ -91,7 +91,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 			// = requestedEnginePower; //todo + _currentState.EnginePowerLoss;
 			CurrentState.EngineTorque = CurrentState.EnginePower / CurrentState.EngineSpeed;
 
-			return new ResponseSuccess();
+			return new ResponseSuccess() { Source = this }; 
 		}
 
 		protected NewtonMeter LimitEnginePower(NewtonMeter requestedEngineTorque, PerSecond avgEngineSpeed, Second AbsTime)
diff --git a/VectoCore/VectoCoreTest/Utils/MockPorts.cs b/VectoCore/VectoCoreTest/Utils/MockPorts.cs
index 3fb6c642535a4591525c4967a88dd842f6c396a1..728b9e77dfe80cacbc3773c3d89bc135c6d00ef0 100644
--- a/VectoCore/VectoCoreTest/Utils/MockPorts.cs
+++ b/VectoCore/VectoCoreTest/Utils/MockPorts.cs
@@ -133,7 +133,7 @@ namespace TUGraz.VectoCore.Tests.Utils
 			Velocity = targetVelocity;
 			Gradient = gradient;
 			Log.Debug("Request: absTime: {0}, ds: {1}, velocity: {2}, gradient: {3}", absTime, ds, targetVelocity, gradient);
-			return new ResponseSuccess();
+			return new ResponseSuccess() { Source = this};
 		}
 
 		public IResponse Request(Second absTime, Second dt, MeterPerSecond targetVelocity, Radian gradient)
@@ -143,7 +143,7 @@ namespace TUGraz.VectoCore.Tests.Utils
 			Velocity = targetVelocity;
 			Gradient = gradient;
 			Log.Debug("Request: absTime: {0}, ds: {1}, velocity: {2}, gradient: {3}", absTime, dt, targetVelocity, gradient);
-			return new ResponseSuccess();
+			return new ResponseSuccess() { Source = this };
 		}
 
 		public IResponse Initialize(MeterPerSecond vehicleSpeed, Radian roadGradient)
@@ -172,12 +172,12 @@ namespace TUGraz.VectoCore.Tests.Utils
 			Force = force;
 			Velocity = velocity;
 			Log.Debug("Request: abstime: {0}, dt: {1}, force: {2}, velocity: {3}", absTime, dt, force, velocity);
-			return new ResponseSuccess();
+			return new ResponseSuccess() { Source = this };
 		}
 
 		public IResponse Initialize(Newton vehicleForce, MeterPerSecond vehicleSpeed)
 		{
-			return new ResponseSuccess();
+			return new ResponseSuccess() { Source = this };
 		}
 	}
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/Utils/MockVehicle.cs b/VectoCore/VectoCoreTest/Utils/MockVehicle.cs
index 2e1a151fe617e86a23022f262116c29332aa8533..10c1fe25b3d53eb12ed013e34d978de69c0be6e3 100644
--- a/VectoCore/VectoCoreTest/Utils/MockVehicle.cs
+++ b/VectoCore/VectoCoreTest/Utils/MockVehicle.cs
@@ -96,7 +96,7 @@ namespace TUGraz.VectoCore.Tests.Utils
 				acceleration = acceleration,
 				gradient = gradient
 			};
-			return new ResponseSuccess();
+			return new ResponseSuccess() { Source = this};
 		}
 
 		public IResponse Initialize(MeterPerSecond vehicleSpeed, Radian roadGradient)