diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/VehicleContainer.cs b/VectoCore/VectoCore/Models/Simulation/Impl/VehicleContainer.cs
index 5506f9349cfd4c8e452137c0ab55deb200f0e7af..3dd0227bf3c4774b2a56fab06eaf66d2109737ed 100644
--- a/VectoCore/VectoCore/Models/Simulation/Impl/VehicleContainer.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Impl/VehicleContainer.cs
@@ -343,5 +343,10 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 		{
 			get { return DrivingCycle.CycleData; }
 		}
+
+		public Meter Altitude
+		{
+			get { return DrivingCycle.Altitude; }
+		}
 	}
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/IDrivingCycleInfo.cs b/VectoCore/VectoCore/Models/SimulationComponent/IDrivingCycleInfo.cs
index 5f5c0f51679c8791185496ac3c56a4e22e26d1ec..203a39311adb1e2946308e2d927930cbd4e3da17 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/IDrivingCycleInfo.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/IDrivingCycleInfo.cs
@@ -29,6 +29,7 @@
 *   Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology
 */
 
+using TUGraz.VectoCommon.Utils;
 using TUGraz.VectoCore.Models.SimulationComponent.Data;
 
 namespace TUGraz.VectoCore.Models.SimulationComponent
@@ -43,5 +44,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent
 		/// Returns the data samples for the current position in the cycle.
 		/// </summary>
 		CycleData CycleData { get; }
+
+		Meter Altitude { get; }
 	}
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/DistanceBasedDrivingCycle.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/DistanceBasedDrivingCycle.cs
index f0db6c2284e483b91d6f58712cb45fbd210510b1..ee5b06535f7de27f9cae98ef6688308782f80190 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/DistanceBasedDrivingCycle.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/DistanceBasedDrivingCycle.cs
@@ -350,7 +350,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 				if (cycleIterator.RightSample.VehicleTargetSpeed.IsEqual(velocity)) {
 					continue;
 				}
-				retVal.Add(cycleIterator.RightSample);
+				retVal.Add(cycleIterator.RightSample); // TODO: MQ 2016-05-13: use clone if iterator here?
 				velocity = cycleIterator.RightSample.VehicleTargetSpeed;
 			} while (cycleIterator.MoveNext() && cycleIterator.RightSample.Distance < PreviousState.Distance + lookaheadDistance);
 			if (retVal.Count > 0) {
@@ -378,6 +378,11 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 			}
 		}
 
+		public Meter Altitude
+		{
+			get { return CurrentState.Altitude; }
+		}
+
 		internal void SetDriveOffDistance(Meter startDistance)
 		{
 			while (CycleIntervalIterator.MoveNext() && CycleIntervalIterator.RightSample.Distance < startDistance) {}
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Driver.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Driver.cs
index 98aa75c196f3e5c34d6fdf440fbfcd6c7f062735..63163d0fa955dde668daec2f325b34289c2faa47 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Driver.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Driver.cs
@@ -799,7 +799,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 			foreach (var kv in _coastData) {
 				container.SetDataValue(kv.Key, kv.Value);
 			}
-			container.SetDataValue("Alt", DataBus.CycleData.LeftSample.Altitude.Value());
+			container.SetDataValue("Alt", DataBus.Altitude.Value());
 			container.SetDataValue("DrivingMode", ((DefaultDriverStrategy)DriverStrategy).CurrentDrivingMode);
 			container.SetDataValue("Action", CurrentAction);
 			_coastData.Clear();
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/PowertrainDrivingCycle.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/PowertrainDrivingCycle.cs
index b475517770c06485e8f8abf83dc4ca211f94aff2..ccbc4b2f61702f23b5ca5d594875f94bc3bc50bf 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/PowertrainDrivingCycle.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/PowertrainDrivingCycle.cs
@@ -215,6 +215,11 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 				};
 			}
 		}
+
+		public Meter Altitude
+		{
+			get { return 0.SI<Meter>(); }
+		}
 	}
 
 	/// <summary>
@@ -514,6 +519,11 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 			}
 		}
 
+		public Meter Altitude
+		{
+			get { return LeftSample.Current.Altitude; }
+		}
+
 		protected override void DoWriteModalResults(IModalDataContainer container)
 		{
 			container[ModalResultField.dist] = CurrentState.Distance;
diff --git a/VectoCore/VectoCoreTest/Utils/MockAuxiliaryDemand.cs b/VectoCore/VectoCoreTest/Utils/MockAuxiliaryDemand.cs
index 5894b9b6ce42c4c9932a2b9e8cc6508efcfcf978..b563210354b76ff58a98ce7905e84d6313145a03 100644
--- a/VectoCore/VectoCoreTest/Utils/MockAuxiliaryDemand.cs
+++ b/VectoCore/VectoCoreTest/Utils/MockAuxiliaryDemand.cs
@@ -74,6 +74,11 @@ namespace TUGraz.VectoCore.Tests.Utils
 			}
 		}
 
+		public Meter Altitude
+		{
+			get { return 0.SI<Meter>(); }
+		}
+
 		protected override void DoWriteModalResults(IModalDataContainer container)
 		{
 			container[ModalResultField.dist] = 0.SI<Meter>();
diff --git a/VectoCore/VectoCoreTest/Utils/MockVairVehicleContainer.cs b/VectoCore/VectoCoreTest/Utils/MockVairVehicleContainer.cs
index 5408a3f33e6470d301cf79026c3f16b93cff5b66..84df8c4615068dae534673e1d601aa98d6dcb6e6 100644
--- a/VectoCore/VectoCoreTest/Utils/MockVairVehicleContainer.cs
+++ b/VectoCore/VectoCoreTest/Utils/MockVairVehicleContainer.cs
@@ -110,6 +110,7 @@ namespace TUGraz.VectoCore.Tests.Utils
 		public bool VehicleStopped { get; private set; }
 		public DrivingBehavior DriverBehavior { get; private set; }
 		public CycleData CycleData { get; set; }
+		public Meter Altitude { get; set; }
 		public ExecutionMode ExecutionMode { get; set; }
 		public IModalDataContainer ModalData { get; private set; }
 		public VectoRunData RunData { get; private set; }