diff --git a/VECTO/GUI/VehicleForm.Designer.vb b/VECTO/GUI/VehicleForm.Designer.vb
index 16326c203b1a018eb878b3f18cad9ad57f7b5368..2e827d7fe65b57c2852d3b7f62e01121f96897b4 100644
--- a/VECTO/GUI/VehicleForm.Designer.vb
+++ b/VECTO/GUI/VehicleForm.Designer.vb
@@ -138,6 +138,9 @@ Partial Class VehicleForm
         Me.Label18 = New System.Windows.Forms.Label()
         Me.Label19 = New System.Windows.Forms.Label()
         Me.TabPage2 = New System.Windows.Forms.TabPage()
+        Me.GroupBox9 = New System.Windows.Forms.GroupBox()
+        Me.cbTankSystem = New System.Windows.Forms.ComboBox()
+        Me.Label23 = New System.Windows.Forms.Label()
         Me.TabPage3 = New System.Windows.Forms.TabPage()
         Me.lvTorqueLimits = New System.Windows.Forms.ListView()
         Me.ColumnHeader5 = CType(New System.Windows.Forms.ColumnHeader(),System.Windows.Forms.ColumnHeader)
@@ -154,9 +157,7 @@ Partial Class VehicleForm
         Me.lblPCC = New System.Windows.Forms.Label()
         Me.cbLegislativeClass = New System.Windows.Forms.ComboBox()
         Me.Label21 = New System.Windows.Forms.Label()
-        Me.GroupBox9 = New System.Windows.Forms.GroupBox()
-        Me.Label23 = New System.Windows.Forms.Label()
-        Me.cbTankSystem = New System.Windows.Forms.ComboBox()
+        Me.cbAtEcoRollReleaseLockupClutch = New System.Windows.Forms.CheckBox()
         Me.GroupBox6.SuspendLayout
         Me.ToolStrip1.SuspendLayout
         Me.GroupBox7.SuspendLayout
@@ -181,10 +182,10 @@ Partial Class VehicleForm
         Me.GroupBox4.SuspendLayout
         Me.Panel1.SuspendLayout
         Me.TabPage2.SuspendLayout
+        Me.GroupBox9.SuspendLayout
         Me.TabPage3.SuspendLayout
         Me.tpADAS.SuspendLayout
         Me.GroupBox5.SuspendLayout
-        Me.GroupBox9.SuspendLayout
         Me.SuspendLayout
         '
         'Label1
@@ -1146,6 +1147,35 @@ Partial Class VehicleForm
         Me.TabPage2.Text = "Powertrain"
         Me.TabPage2.UseVisualStyleBackColor = true
         '
+        'GroupBox9
+        '
+        Me.GroupBox9.Controls.Add(Me.cbTankSystem)
+        Me.GroupBox9.Controls.Add(Me.Label23)
+        Me.GroupBox9.Location = New System.Drawing.Point(306, 7)
+        Me.GroupBox9.Name = "GroupBox9"
+        Me.GroupBox9.Size = New System.Drawing.Size(264, 63)
+        Me.GroupBox9.TabIndex = 5
+        Me.GroupBox9.TabStop = false
+        Me.GroupBox9.Text = "Tank System"
+        '
+        'cbTankSystem
+        '
+        Me.cbTankSystem.FormattingEnabled = true
+        Me.cbTankSystem.Location = New System.Drawing.Point(9, 33)
+        Me.cbTankSystem.Name = "cbTankSystem"
+        Me.cbTankSystem.Size = New System.Drawing.Size(247, 21)
+        Me.cbTankSystem.TabIndex = 1
+        '
+        'Label23
+        '
+        Me.Label23.AutoSize = true
+        Me.Label23.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0,Byte))
+        Me.Label23.Location = New System.Drawing.Point(6, 16)
+        Me.Label23.Name = "Label23"
+        Me.Label23.Size = New System.Drawing.Size(187, 13)
+        Me.Label23.TabIndex = 0
+        Me.Label23.Text = "Only applicable for NG engines!"
+        '
         'TabPage3
         '
         Me.TabPage3.Controls.Add(Me.lvTorqueLimits)
@@ -1226,6 +1256,7 @@ Partial Class VehicleForm
         '
         'GroupBox5
         '
+        Me.GroupBox5.Controls.Add(Me.cbAtEcoRollReleaseLockupClutch)
         Me.GroupBox5.Controls.Add(Me.cbPcc)
         Me.GroupBox5.Controls.Add(Me.cbEcoRoll)
         Me.GroupBox5.Controls.Add(Me.Label22)
@@ -1300,34 +1331,15 @@ Partial Class VehicleForm
         Me.Label21.TabIndex = 42
         Me.Label21.Text = "Maximum Laden Mass"
         '
-        'GroupBox9
-        '
-        Me.GroupBox9.Controls.Add(Me.cbTankSystem)
-        Me.GroupBox9.Controls.Add(Me.Label23)
-        Me.GroupBox9.Location = New System.Drawing.Point(306, 7)
-        Me.GroupBox9.Name = "GroupBox9"
-        Me.GroupBox9.Size = New System.Drawing.Size(264, 63)
-        Me.GroupBox9.TabIndex = 5
-        Me.GroupBox9.TabStop = false
-        Me.GroupBox9.Text = "Tank System"
-        '
-        'Label23
-        '
-        Me.Label23.AutoSize = true
-        Me.Label23.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0,Byte))
-        Me.Label23.Location = New System.Drawing.Point(6, 16)
-        Me.Label23.Name = "Label23"
-        Me.Label23.Size = New System.Drawing.Size(187, 13)
-        Me.Label23.TabIndex = 0
-        Me.Label23.Text = "Only applicable for NG engines!"
-        '
-        'cbTankSystem
+        'cbAtEcoRollReleaseLockupClutch
         '
-        Me.cbTankSystem.FormattingEnabled = true
-        Me.cbTankSystem.Location = New System.Drawing.Point(9, 33)
-        Me.cbTankSystem.Name = "cbTankSystem"
-        Me.cbTankSystem.Size = New System.Drawing.Size(247, 21)
-        Me.cbTankSystem.TabIndex = 1
+        Me.cbAtEcoRollReleaseLockupClutch.AutoSize = true
+        Me.cbAtEcoRollReleaseLockupClutch.Location = New System.Drawing.Point(265, 19)
+        Me.cbAtEcoRollReleaseLockupClutch.Name = "cbAtEcoRollReleaseLockupClutch"
+        Me.cbAtEcoRollReleaseLockupClutch.Size = New System.Drawing.Size(243, 17)
+        Me.cbAtEcoRollReleaseLockupClutch.TabIndex = 9
+        Me.cbAtEcoRollReleaseLockupClutch.Text = "AT Gearbox: Eco-Roll Release Lockup Clutch"
+        Me.cbAtEcoRollReleaseLockupClutch.UseVisualStyleBackColor = true
         '
         'VehicleForm
         '
@@ -1394,13 +1406,13 @@ Partial Class VehicleForm
         Me.Panel1.ResumeLayout(false)
         Me.Panel1.PerformLayout
         Me.TabPage2.ResumeLayout(false)
+        Me.GroupBox9.ResumeLayout(false)
+        Me.GroupBox9.PerformLayout
         Me.TabPage3.ResumeLayout(false)
         Me.TabPage3.PerformLayout
         Me.tpADAS.ResumeLayout(false)
         Me.GroupBox5.ResumeLayout(false)
         Me.GroupBox5.PerformLayout
-        Me.GroupBox9.ResumeLayout(false)
-        Me.GroupBox9.PerformLayout
         Me.ResumeLayout(false)
         Me.PerformLayout
 
@@ -1528,4 +1540,5 @@ End Sub
     Friend WithEvents GroupBox9 As GroupBox
     Friend WithEvents cbTankSystem As ComboBox
     Friend WithEvents Label23 As Label
+    Friend WithEvents cbAtEcoRollReleaseLockupClutch As CheckBox
 End Class
diff --git a/VECTO/GUI/VehicleForm.vb b/VECTO/GUI/VehicleForm.vb
index 5196c87017264674d8d6d7423fbd0140fc7f3b1b..33208fce7ef48a41db1f2802becf2001f0b694c9 100644
--- a/VECTO/GUI/VehicleForm.vb
+++ b/VECTO/GUI/VehicleForm.vb
@@ -402,6 +402,8 @@ Public Class VehicleForm
 	    cbPcc.SelectedValue = vehicle.ADAS.PredictiveCruiseControl
 	    cbEcoRoll.SelectedValue = vehicle.ADAS.EcoRoll
 	    cbEngineStopStart.Checked = vehicle.ADAS.EngineStopStart
+        cbAtEcoRollReleaseLockupClutch.Checked = If(vehicle.ADAS.ATEcoRollReleaseLockupClutch , false)
+
 		if (vehicle.SavedInDeclarationMode) then
 			Dim declVehicle as IVehicleDeclarationInputData = vehicle
 			
@@ -539,6 +541,7 @@ Public Class VehicleForm
 		veh.EcoRollType = CType(cbEcoRoll.SelectedValue, EcoRollType)
 		veh.PCC = CType(cbPcc.SelectedValue, PredictiveCruiseControlType)
 		veh.EngineStop = cbEngineStopStart.Checked
+        veh.EcoRollReleaseLockupClutch = cbAtEcoRollReleaseLockupClutch.Checked
 
 		veh.VehicleTankSystem = CType(If(cbTankSystem.SelectedIndex > 0, cbTankSystem.SelectedValue, nothing), TankSystem?)
 
@@ -961,5 +964,9 @@ Public Class VehicleForm
 	Private Sub tbVehIdlingSpeed_TextChanged(sender As Object, e As EventArgs) Handles tbVehIdlingSpeed.TextChanged
 
 	End Sub
+
+    Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles cbAtEcoRollReleaseLockupClutch.CheckedChanged
+
+    End Sub
 End Class
 
diff --git a/VECTO/Input Files/Gearbox.vb b/VECTO/Input Files/Gearbox.vb
index d0b43249bf75938d808c67746b71bcdf0f5d549d..0c91759b4ca0095e239ce9bca3d4dfcd4c09e6b3 100644
--- a/VECTO/Input Files/Gearbox.vb	
+++ b/VECTO/Input Files/Gearbox.vb	
@@ -220,7 +220,7 @@ Public Class Gearbox
                 End Try
 
                 axlegearData = doa.CreateAxleGearData(gearbox)
-                gearboxData = doa.CreateGearboxData(gearbox, engine, axlegearData.AxleGear.Ratio, rdyn, vehiclecategory, gearbox)
+                gearboxData = doa.CreateGearboxData(gearbox, engine, axlegearData.AxleGear.Ratio, rdyn, vehiclecategory, gearbox, false)
             Else
                 Dim doa As EngineeringDataAdapter = New EngineeringDataAdapter()
                 Try
@@ -230,7 +230,7 @@ Public Class Gearbox
                 End Try
 
                 axlegearData = doa.CreateAxleGearData(gearbox)
-                gearboxData = doa.CreateGearboxData(gearbox, engine, gearbox, axlegearData.AxleGear.Ratio, rdyn, vehiclecategory, gearbox)
+                gearboxData = doa.CreateGearboxData(gearbox, engine, gearbox, axlegearData.AxleGear.Ratio, rdyn, vehiclecategory, gearbox, false)
             End If
 
             Dim result As IList(Of ValidationResult) =
diff --git a/VECTO/Input Files/Vehicle.vb b/VECTO/Input Files/Vehicle.vb
index c872a4181b63836d77cb7312150092e8ed7602bd..3618c868a21d465d79622a3d27405056c721cdec 100644
--- a/VECTO/Input Files/Vehicle.vb	
+++ b/VECTO/Input Files/Vehicle.vb	
@@ -765,6 +765,12 @@ Public Class Vehicle
 	End Get
 	End Property
 
+    Public ReadOnly Property ATEcoRollReleaseLockupClutch As Boolean? Implements IAdvancedDriverAssistantSystemDeclarationInputData.ATEcoRollReleaseLockupClutch
+    get
+            Return EcoRollReleaseLockupClutch
+    End Get
+    End Property
+
     Public ReadOnly Property IAdvancedDriverAssistantSystemsEngineering_DataSource As DataSource Implements IAdvancedDriverAssistantSystemsEngineering.DataSource
         get
             Return New DataSource() With {.SourceType = DataSourceType.JSONFile}
@@ -778,5 +784,6 @@ Public Class Vehicle
 	End Get
 	End Property
 
-    
+    Public Property EcoRollReleaseLockupClutch As Boolean
+
 End Class
diff --git a/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs b/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs
index 710b0ad52f04af49ff10a3396662f4aca2b7949d..8041728e2f10f4ec02984ee1080d6b304111f7d1 100644
--- a/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs
+++ b/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs
@@ -204,6 +204,8 @@ namespace TUGraz.VectoCommon.InputData
 		EcoRollType EcoRoll { get; }
 
 		PredictiveCruiseControlType PredictiveCruiseControl { get; }
+
+		bool? ATEcoRollReleaseLockupClutch { get; }
 	}
 
 	public enum PredictiveCruiseControlType
diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONComponentInputData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONComponentInputData.cs
index 4da2a5e537f85dc1fc3ca0a9ed98d0b1fbc232e5..5d4c2f66d0d9958ec0f54a694683437010d44649 100644
--- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONComponentInputData.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONComponentInputData.cs
@@ -216,6 +216,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 			get { return VehicleData.Height; }
 		}
 
+		public bool? ATEcoRollReleaseLockupClutch { get { return VehicleData.ADAS.ATEcoRollReleaseLockupClutch; } }
+
 		IVehicleComponentsEngineering IVehicleEngineeringInputData.Components
 		{
 			get { return this; }
diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs
index ac8292e9e5dffd1aaf1eb2f70d36844df42146f6..0575db66c9b84cd156b192b8281b18dc4b355da5 100644
--- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs
@@ -54,6 +54,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 		public override bool EngineStopStart { get { return Body.GetEx<bool>("EngineStopStart"); } }
 		public override EcoRollType EcoRoll { get { return EcorollTypeHelper.Parse(Body.GetEx<string>("EcoRoll")); } }
 
+		public override bool? ATEcoRollReleaseLockupClutch {  get {
+			return Body["ATEcoRollReleaseLockupClutch"]?.Value<bool>();
+		} }
 		public override PredictiveCruiseControlType PredictiveCruiseControl
 		{
 			get {
@@ -161,6 +164,11 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 			get { return Body["VehicleHeight"] == null ? null : Body.GetEx<double>("VehicleHeight").SI<Meter>(); }
 		}
 
+		public virtual bool? ATEcoRollReleaseLockupClutch
+		{
+			get { return null; }
+		}
+
 		IVehicleComponentsEngineering IVehicleEngineeringInputData.Components
 		{
 			get { return this; }
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationADASDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationADASDataProvider.cs
index d3079bbbe9b8fe31255af8608c9237b7467a9c4f..70de2322d2c841a72295ca5c0e8af8a89f36b404 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationADASDataProvider.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationADASDataProvider.cs
@@ -55,6 +55,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 			get { return PredictiveCruiseControlTypeHelper.Parse(GetString(XMLNames.Vehicle_ADAS_PCC)); }
 		}
 
+		public virtual bool? ATEcoRollReleaseLockupClutch { get { return null; } }
+
 		#endregion
 	}
 
@@ -81,4 +83,43 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 			get { return NAMESPACE_URI; }
 		}
 	}
+
+	// ---------------------------------------------------------------------------------------
+
+	public class XMLDeclarationADASDataProviderV23 : XMLDeclarationADASDataProviderV21
+	{
+		/*
+		 * new field added in version 2.3
+		 */
+
+		public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V23;
+
+		public new const string XSD_TYPE = "AdvancedDriverAssistantSystemsType";
+
+		public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
+
+		public XMLDeclarationADASDataProviderV23(IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile)
+			: base(vehicle, componentNode, sourceFile) { }
+
+		#region Overrides of XMLDeclarationADASDataProviderV10
+
+		public override bool? ATEcoRollReleaseLockupClutch
+		{
+			get {
+				var node = GetNode("ATEcoRollReleaseLockupClutch", required:false);
+				if (node == null) {
+					return null;
+				}
+
+				return XmlConvert.ToBoolean(node.InnerText);
+			}
+		}
+
+		#endregion
+
+		protected override XNamespace SchemaNamespace
+		{
+			get { return NAMESPACE_URI; }
+		}
+	}
 }
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs
index 6db977c721951a882b9e3bc74d7553f69f85a625..7f73ef6bf60001340588a681bce5587cd0b182f5 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs
@@ -375,6 +375,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 				get { return PredictiveCruiseControlType.None; }
 			}
 
+			public bool? ATEcoRollReleaseLockupClutch { get { return null; } }
+
 			#endregion
 		}
 	}
@@ -555,4 +557,6 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 
 		#endregion
 	}
+
+	
 }
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataV23InjectModule.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataV23InjectModule.cs
index d2aff2bbb38eaf8f1eb452ba1cda38e0e4be490b..95434a01e8ad30d707c32a58c43954c7ea47556b 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataV23InjectModule.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataV23InjectModule.cs
@@ -12,6 +12,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.NinjectModules
 		{
 			Bind<IXMLEngineDeclarationInputData>().To<XMLDeclarationEngineDataProviderV23>()
 												.Named(XMLDeclarationEngineDataProviderV23.QUALIFIED_XSD_TYPE);
+
+			Bind<IXMLAdvancedDriverAssistantSystemDeclarationInputData>()
+				.To<XMLDeclarationADASDataProviderV23>().Named(XMLDeclarationADASDataProviderV23.QUALIFIED_XSD_TYPE);
 		}
 
 		#endregion
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLADASReader.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLADASReader.cs
index 84ae862987a8ea976649f75256bb572a7bb047f1..2f5a869ca66256e7fe3c9825805845839ce9e528 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLADASReader.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLADASReader.cs
@@ -97,4 +97,24 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl
 			get { return NAMESPACE_URI; }
 		}
 	}
+
+	// ---------------------------------------------------------------------------------------
+
+	public class XMLADASReaderV23 : XMLADASReaderV10
+	{
+		public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V23;
+
+		public new const string XSD_TYPE = "AdvancedDriverAssistantSystemsType";
+
+		public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
+
+		public XMLADASReaderV23(IXMLDeclarationVehicleData vehicle, XmlNode vehicleNode) : base(
+			vehicle, vehicleNode)
+		{ }
+
+		public override XNamespace SchemaNamespace
+		{
+			get { return NAMESPACE_URI; }
+		}
+	}
 }
diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs
index 77ef483d51bd6189f9e7b031a9b7c23a66c9bf33..9a7a61def09fd62b82e45a640e1123f7f6c071f7 100644
--- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs
+++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs
@@ -305,13 +305,18 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 
 		internal GearboxData CreateGearboxData(
 			IGearboxDeclarationInputData gearbox, CombustionEngineData engine, double axlegearRatio, Meter dynamicTyreRadius,
-			VehicleCategory vehicleCategory, ITorqueConverterDeclarationInputData torqueConverter)
+			VehicleCategory vehicleCategory, ITorqueConverterDeclarationInputData torqueConverter, bool? atEcoRollReleaseLockupClutch)
 		{
 			if (!gearbox.SavedInDeclarationMode) {
 				WarnDeclarationMode("GearboxData");
 			}
 			var retVal = SetCommonGearboxData(gearbox);
 
+			if (retVal.Type.AutomaticTransmission() && !atEcoRollReleaseLockupClutch.HasValue) {
+				throw new VectoException("Input parameter ATEcoRollReleaseLockupClutch required for AT transmission");
+			}
+			retVal.ATEcoRollReleaseLockupClutch = retVal.Type.AutomaticTransmission() ? atEcoRollReleaseLockupClutch.Value : false;
+
 			if (!SupportedGearboxTypes.Contains(gearbox.Type)) {
 				throw new VectoSimulationException("Unsupported gearbox type: {0}!", retVal.Type);
 			}
diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs
index 25073f7b3d5b632b49603fdad754a46164120a9a..4e6c2c62789a316f94b41e9986c820f753dc165c 100644
--- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs
+++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs
@@ -260,7 +260,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 		internal GearboxData CreateGearboxData(
 			IGearboxEngineeringInputData gearbox, CombustionEngineData engineData, IGearshiftEngineeringInputData gearshiftData,
 			double axlegearRatio, Meter dynamicTyreRadius, VehicleCategory vehicleCategory,
-			ITorqueConverterEngineeringInputData torqueConverter)
+			ITorqueConverterEngineeringInputData torqueConverter, bool? atEcoRollReleaseLockupClutch)
 		{
 			if (gearbox.SavedInDeclarationMode) {
 				WarnEngineeringMode("GearboxData");
@@ -268,6 +268,11 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 
 			var retVal = SetCommonGearboxData(gearbox);
 
+			if (retVal.Type.AutomaticTransmission() && !atEcoRollReleaseLockupClutch.HasValue) {
+				throw new VectoException("Parameter ATEcoRollReleaseLockupClutch required for AT gearbox");
+			}
+			retVal.ATEcoRollReleaseLockupClutch = retVal.Type.AutomaticTransmission() ? atEcoRollReleaseLockupClutch.Value : false;
+
 			//var gears = gearbox.Gears;
 			if (gearbox.Gears.Count < 2) {
 				throw new VectoSimulationException("At least two Gear-Entries must be defined in Gearbox!");
diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeVectoRunDataFactory.cs
index 53961372ca9a51b5ef4a7d2cf536449a6c57cb56..6947f9f96c48567e54e67bb6d5943fc55a327b09 100644
--- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeVectoRunDataFactory.cs
+++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeVectoRunDataFactory.cs
@@ -114,7 +114,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 				vehicle, vehicle.Components.EngineInputData.EngineModes[0], _segment.Missions.First());
 			_gearboxData = _dao.CreateGearboxData(vehicle.Components.GearboxInputData, tmpEngine,
 				_axlegearData.AxleGear.Ratio,
-				tempVehicle.DynamicTyreRadius, tempVehicle.VehicleCategory, vehicle.Components.TorqueConverterInputData);
+				tempVehicle.DynamicTyreRadius, tempVehicle.VehicleCategory, vehicle.Components.TorqueConverterInputData, vehicle.ADAS.ATEcoRollReleaseLockupClutch);
 			_retarderData = _dao.CreateRetarderData(vehicle.Components.RetarderInputData);
 
 			_ptoTransmissionData = _dao.CreatePTOTransmissionData(vehicle.Components.PTOTransmissionInputData);
diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationVTPModeVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationVTPModeVectoRunDataFactory.cs
index 89be51f0dac1d41d5537933c45a50c7c5f498500..1bbff88a8ad6cce0533379e7e01f418a187c13a3 100644
--- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationVTPModeVectoRunDataFactory.cs
+++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationVTPModeVectoRunDataFactory.cs
@@ -135,7 +135,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 			GearboxData = Dao.CreateGearboxData(
 				vehicle.Components.GearboxInputData, EngineData,
 				AxlegearData.AxleGear.Ratio,
-				tempVehicle.DynamicTyreRadius, tempVehicle.VehicleCategory, vehicle.Components.TorqueConverterInputData);
+				tempVehicle.DynamicTyreRadius, tempVehicle.VehicleCategory, vehicle.Components.TorqueConverterInputData, vehicle.ADAS.ATEcoRollReleaseLockupClutch);
 			RetarderData = Dao.CreateRetarderData(vehicle.Components.RetarderInputData);
 
 			PTOTransmissionData =
diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/EngineeringModeVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/EngineeringModeVectoRunDataFactory.cs
index aeb35bc788d812352b2f454577b50966f6d1fb35..0379148b0a80cc5fa456c222b963afb057ee59f7 100644
--- a/VectoCore/VectoCore/InputData/Reader/Impl/EngineeringModeVectoRunDataFactory.cs
+++ b/VectoCore/VectoCore/InputData/Reader/Impl/EngineeringModeVectoRunDataFactory.cs
@@ -77,7 +77,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 					var gearboxData = dao.CreateGearboxData(
 						vehicle.Components.GearboxInputData, engineData, InputDataProvider.DriverInputData.GearshiftInputData,
 						axlegearData.AxleGear.Ratio, tempVehicle.DynamicTyreRadius, tempVehicle.VehicleCategory,
-						vehicle.Components.TorqueConverterInputData);
+						vehicle.Components.TorqueConverterInputData, vehicle.ADAS.ATEcoRollReleaseLockupClutch);
 					var crossWindRequired = vehicle.Components.AirdragInputData.CrossWindCorrectionMode ==
 											CrossWindCorrectionMode.VAirBetaLookupTable;
 					var angledriveData = dao.CreateAngledriveData(vehicle.Components.AngledriveInputData);
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Data/GearboxData.cs b/VectoCore/VectoCore/Models/SimulationComponent/Data/GearboxData.cs
index 1adc388915c79f2882e7b55c430b6f266209a7f3..8dc4a7f849d42ff6f423e7361241419928fec1d3 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Data/GearboxData.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Data/GearboxData.cs
@@ -29,108 +29,111 @@
 *   Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology
 */
 
-using System;
-using System.Collections.Generic;
-using System.ComponentModel.DataAnnotations;
-using System.Diagnostics;
-using System.Linq;
-using System.Runtime.Serialization;
-using TUGraz.VectoCommon.Models;
-using TUGraz.VectoCommon.Utils;
-using TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox;
-
-namespace TUGraz.VectoCore.Models.SimulationComponent.Data
-{
-	/// <summary>
-	/// Class for Gearbox Data. Gears can be accessed via Gears-Dictionary and range from 1 upwards.
-	/// </summary>
-	/// <remarks>The Axle Gear has its own Property "AxleGearData" and is *not included* in the Gears-Dictionary.</remarks>
-	[DataContract, CustomValidation(typeof(GearboxData), "ValidateGearboxData")]
-	[DebuggerDisplay("GearboxData({Type}, #Gears: {Gears.Count}, ...)")]
-	public class GearboxData : SimulationComponentData
-	{
-		public GearboxType Type { get; internal set; }
-
-		[Required, ValidateObject] public Dictionary<uint, GearData> Gears = new Dictionary<uint, GearData>();
-
-		public TorqueConverterData TorqueConverterData { get; internal set; }
-
-		[Required, SIRange(0, 10)]
-		public KilogramSquareMeter Inertia { get; internal set; }
-
-		[Required, SIRange(0, 5)]
-		public Second TractionInterruption { get; internal set; }
-
-		/// <summary>
-		///	[%] (0-1) The torque reserve for shift strategy (early upshift, skipgears)
-		/// </summary>
-		[Required, Range(0, 0.5)]
-		public double TorqueReserve { get; internal set; }
-
-		/// <summary>
-		/// Gets the minimum time between shifts.
-		/// </summary>
-		[Required, SIRange(0, 5)]
-		public Second ShiftTime { get; internal set; }
-
-		/// <summary>
-		/// [%] (0-1) The starting torque reserve for finding the starting gear after standstill.
-		/// </summary>
-		[Required, Range(0, 0.5)]
-		public double StartTorqueReserve { get; internal set; }
-
-		// MQ: TODO: move to Driver Data ?
-		[Required, SIRange(double.Epsilon, 5)]
-		public MeterPerSecond StartSpeed { get; internal set; }
-
-		// MQ: TODO: move to Driver Data ?
-		[Required, SIRange(double.Epsilon, 2)]
-		public MeterPerSquareSecond StartAcceleration { get; internal set; }
-
-		[Required, SIRange(0, double.MaxValue)]
-		public Second UpshiftAfterDownshiftDelay { get; internal set; }
-
-		[Required, SIRange(0, double.MaxValue)]
-		public Second DownshiftAfterUpshiftDelay { get; internal set; }
-
-		[Required, SIRange(0, double.MaxValue)]
-		public MeterPerSquareSecond UpshiftMinAcceleration { get; internal set; }
-
-		[SIRange(0.5, 1)]
-		public Second PowershiftShiftTime { get; internal set; }
-
-		// ReSharper disable once UnusedMember.Global -- used via Validation
-		public static ValidationResult ValidateGearboxData(GearboxData gearboxData, ValidationContext validationContext)
-		{
-			var mode = GetExecutionMode(validationContext);
-			//var gbxType = GetGearboxType(validationContext);
-			var emsMission = GetEmsMode(validationContext);
-
-			var result = new List<ValidationResult>();
-
-			if (gearboxData.Gears.Any(g => g.Value.HasTorqueConverter)) {
-				if (!gearboxData.Type.AutomaticTransmission()) {
-					return new ValidationResult("Torque Converter can only be used with AT gearbox model");
-				}
-			} else {
-				if (gearboxData.Type.AutomaticTransmission()) {
-					return new ValidationResult("AT gearbox model requires torque converter");
-				}
-			}
-			if (gearboxData.Type.AutomaticTransmission()) {
-				gearboxData.TorqueConverterData.RequiredSpeedRatio =
-					Math.Round(gearboxData.Gears[1].TorqueConverterRatio / gearboxData.Gears[1].Ratio, 4) * 0.95;
-				result.AddRange(gearboxData.TorqueConverterData.Validate(mode, gearboxData.Type, emsMission));
-				//result.AddRange(gearboxData.PowershiftShiftTime.Validate(mode, gearboxData.Type));
-				//result.AddRange(gearboxData.PowershiftInertiaFactor.Validate(mode, gearboxData.Type));
-				validationContext.MemberName = "PowershiftShiftTime";
-				Validator.TryValidateProperty(gearboxData.PowershiftShiftTime, validationContext, result);
-			}
-
-			if (result.Any()) {
-				return new ValidationResult("Validation of Gearbox Data failed", result.Select(x => x.ErrorMessage));
-			}
-			return ValidationResult.Success;
-		}
-	}
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Diagnostics;
+using System.Linq;
+using System.Runtime.Serialization;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox;
+
+namespace TUGraz.VectoCore.Models.SimulationComponent.Data
+{
+	/// <summary>
+	/// Class for Gearbox Data. Gears can be accessed via Gears-Dictionary and range from 1 upwards.
+	/// </summary>
+	/// <remarks>The Axle Gear has its own Property "AxleGearData" and is *not included* in the Gears-Dictionary.</remarks>
+	[DataContract, CustomValidation(typeof(GearboxData), "ValidateGearboxData")]
+	[DebuggerDisplay("GearboxData({Type}, #Gears: {Gears.Count}, ...)")]
+	public class GearboxData : SimulationComponentData
+	{
+		public GearboxType Type { get; internal set; }
+
+		[Required, ValidateObject] public Dictionary<uint, GearData> Gears = new Dictionary<uint, GearData>();
+
+		public TorqueConverterData TorqueConverterData { get; internal set; }
+
+		[Required, SIRange(0, 10)]
+		public KilogramSquareMeter Inertia { get; internal set; }
+
+		[Required, SIRange(0, 5)]
+		public Second TractionInterruption { get; internal set; }
+
+		/// <summary>
+		///	[%] (0-1) The torque reserve for shift strategy (early upshift, skipgears)
+		/// </summary>
+		[Required, Range(0, 0.5)]
+		public double TorqueReserve { get; internal set; }
+
+		/// <summary>
+		/// Gets the minimum time between shifts.
+		/// </summary>
+		[Required, SIRange(0, 5)]
+		public Second ShiftTime { get; internal set; }
+
+		/// <summary>
+		/// [%] (0-1) The starting torque reserve for finding the starting gear after standstill.
+		/// </summary>
+		[Required, Range(0, 0.5)]
+		public double StartTorqueReserve { get; internal set; }
+
+		// MQ: TODO: move to Driver Data ?
+		[Required, SIRange(double.Epsilon, 5)]
+		public MeterPerSecond StartSpeed { get; internal set; }
+
+		// MQ: TODO: move to Driver Data ?
+		[Required, SIRange(double.Epsilon, 2)]
+		public MeterPerSquareSecond StartAcceleration { get; internal set; }
+
+		[Required, SIRange(0, double.MaxValue)]
+		public Second UpshiftAfterDownshiftDelay { get; internal set; }
+
+		[Required, SIRange(0, double.MaxValue)]
+		public Second DownshiftAfterUpshiftDelay { get; internal set; }
+
+		[Required, SIRange(0, double.MaxValue)]
+		public MeterPerSquareSecond UpshiftMinAcceleration { get; internal set; }
+
+		[SIRange(0.5, 1)]
+		public Second PowershiftShiftTime { get; internal set; }
+
+		public bool ATEcoRollReleaseLockupClutch { get; internal set; }
+
+
+		// ReSharper disable once UnusedMember.Global -- used via Validation
+		public static ValidationResult ValidateGearboxData(GearboxData gearboxData, ValidationContext validationContext)
+		{
+			var mode = GetExecutionMode(validationContext);
+			//var gbxType = GetGearboxType(validationContext);
+			var emsMission = GetEmsMode(validationContext);
+
+			var result = new List<ValidationResult>();
+
+			if (gearboxData.Gears.Any(g => g.Value.HasTorqueConverter)) {
+				if (!gearboxData.Type.AutomaticTransmission()) {
+					return new ValidationResult("Torque Converter can only be used with AT gearbox model");
+				}
+			} else {
+				if (gearboxData.Type.AutomaticTransmission()) {
+					return new ValidationResult("AT gearbox model requires torque converter");
+				}
+			}
+			if (gearboxData.Type.AutomaticTransmission()) {
+				gearboxData.TorqueConverterData.RequiredSpeedRatio =
+					Math.Round(gearboxData.Gears[1].TorqueConverterRatio / gearboxData.Gears[1].Ratio, 4) * 0.95;
+				result.AddRange(gearboxData.TorqueConverterData.Validate(mode, gearboxData.Type, emsMission));
+				//result.AddRange(gearboxData.PowershiftShiftTime.Validate(mode, gearboxData.Type));
+				//result.AddRange(gearboxData.PowershiftInertiaFactor.Validate(mode, gearboxData.Type));
+				validationContext.MemberName = "PowershiftShiftTime";
+				Validator.TryValidateProperty(gearboxData.PowershiftShiftTime, validationContext, result);
+			}
+
+			if (result.Any()) {
+				return new ValidationResult("Validation of Gearbox Data failed", result.Select(x => x.ErrorMessage));
+			}
+			return ValidationResult.Success;
+		}
+	}
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/FileIO/JsonReadTest.cs b/VectoCore/VectoCoreTest/FileIO/JsonReadTest.cs
index 46d0de9ca12d48eb7fbc35dd57584a1093debd94..e6a4d50aac37d52e4d80cdd80fc4814d35348a99 100644
--- a/VectoCore/VectoCoreTest/FileIO/JsonReadTest.cs
+++ b/VectoCore/VectoCoreTest/FileIO/JsonReadTest.cs
@@ -174,7 +174,7 @@ namespace TUGraz.VectoCore.Tests.FileIO
 			var gbxData = new EngineeringDataAdapter().CreateGearboxData(inputProvider,
 				MockSimulationDataFactory.CreateEngineDataFromFile(@"TestData\Components\AT_GBX\Engine.veng", 0),
 				(IGearshiftEngineeringInputData)inputProvider, 2.1,
-				0.5.SI<Meter>(), VehicleCategory.RigidTruck, (ITorqueConverterEngineeringInputData)inputProvider);
+				0.5.SI<Meter>(), VehicleCategory.RigidTruck, (ITorqueConverterEngineeringInputData)inputProvider, false);
 			Assert.AreEqual(ratios.Length, gbxData.Gears.Count);
 
 			// interpreted as gearbox with first and second gear using TC (due to gear ratios)
@@ -199,7 +199,7 @@ namespace TUGraz.VectoCore.Tests.FileIO
 			var gbxData = new EngineeringDataAdapter().CreateGearboxData(inputProvider,
 				MockSimulationDataFactory.CreateEngineDataFromFile(@"TestData\Components\AT_GBX\Engine.veng", 0),
 				(IGearshiftEngineeringInputData)inputProvider, 2.1,
-				0.5.SI<Meter>(), VehicleCategory.RigidTruck, (ITorqueConverterEngineeringInputData)inputProvider);
+				0.5.SI<Meter>(), VehicleCategory.RigidTruck, (ITorqueConverterEngineeringInputData)inputProvider, false);
 			Assert.AreEqual(ratios.Length, gbxData.Gears.Count);
 
 			Assert.IsTrue(gbxData.Gears[1].HasLockedGear);
@@ -226,7 +226,7 @@ namespace TUGraz.VectoCore.Tests.FileIO
 			var gbxData = new EngineeringDataAdapter().CreateGearboxData(inputProvider,
 				MockSimulationDataFactory.CreateEngineDataFromFile(@"TestData\Components\AT_GBX\Engine.veng", 0),
 				(IGearshiftEngineeringInputData)inputProvider, 2.1,
-				0.5.SI<Meter>(), VehicleCategory.RigidTruck, (ITorqueConverterEngineeringInputData)inputProvider);
+				0.5.SI<Meter>(), VehicleCategory.RigidTruck, (ITorqueConverterEngineeringInputData)inputProvider, false);
 			Assert.AreEqual(ratios.Length, gbxData.Gears.Count);
 
 			Assert.IsTrue(gbxData.Gears[1].HasLockedGear);
@@ -252,7 +252,7 @@ namespace TUGraz.VectoCore.Tests.FileIO
 			var gbxData = new EngineeringDataAdapter().CreateGearboxData(inputProvider,
 				MockSimulationDataFactory.CreateEngineDataFromFile(@"TestData\Components\AT_GBX\Engine.veng", 0),
 				(IGearshiftEngineeringInputData)inputProvider, 2.1,
-				0.5.SI<Meter>(), VehicleCategory.RigidTruck, (ITorqueConverterEngineeringInputData)inputProvider);
+				0.5.SI<Meter>(), VehicleCategory.RigidTruck, (ITorqueConverterEngineeringInputData)inputProvider,false);
 			Assert.AreEqual(ratios.Length, gbxData.Gears.Count);
 
 			Assert.IsFalse(gbxData.Gears[1].HasLockedGear);
@@ -280,7 +280,7 @@ namespace TUGraz.VectoCore.Tests.FileIO
 			var gbxData = new EngineeringDataAdapter().CreateGearboxData(inputProvider,
 				MockSimulationDataFactory.CreateEngineDataFromFile(@"TestData\Components\AT_GBX\Engine.veng", 0),
 				(IGearshiftEngineeringInputData)inputProvider, 2.1,
-				0.5.SI<Meter>(), VehicleCategory.InterurbanBus, (ITorqueConverterEngineeringInputData)inputProvider);
+				0.5.SI<Meter>(), VehicleCategory.InterurbanBus, (ITorqueConverterEngineeringInputData)inputProvider,false);
 			Assert.AreEqual(ratios.Length, gbxData.Gears.Count);
 
 			Assert.IsTrue(gbxData.Gears[1].HasLockedGear);
@@ -308,7 +308,7 @@ namespace TUGraz.VectoCore.Tests.FileIO
 			var gbxData = new EngineeringDataAdapter().CreateGearboxData(inputProvider,
 				MockSimulationDataFactory.CreateEngineDataFromFile(@"TestData\Components\AT_GBX\Engine.veng", 0),
 				(IGearshiftEngineeringInputData)inputProvider, 2.1,
-				0.5.SI<Meter>(), VehicleCategory.InterurbanBus, (ITorqueConverterEngineeringInputData)inputProvider);
+				0.5.SI<Meter>(), VehicleCategory.InterurbanBus, (ITorqueConverterEngineeringInputData)inputProvider, false);
 			Assert.AreEqual(ratios.Length, gbxData.Gears.Count);
 
 			Assert.IsFalse(gbxData.Gears[1].HasLockedGear);
diff --git a/VectoCore/VectoCoreTest/Utils/MockSimulationDataFactory.cs b/VectoCore/VectoCoreTest/Utils/MockSimulationDataFactory.cs
index 72f668e951174c342194f2255c814afca0ce24e6..646cf77d37fee517d4155f6aa8893583c485afea 100644
--- a/VectoCore/VectoCoreTest/Utils/MockSimulationDataFactory.cs
+++ b/VectoCore/VectoCoreTest/Utils/MockSimulationDataFactory.cs
@@ -67,7 +67,7 @@ namespace TUGraz.VectoCore.Tests.Utils
 				};
 				var engineData = dao.CreateEngineData(vehicleInput, engineInput.EngineModes.First(), mission);//(engineInput, null, gearboxInput, new List<ITorqueLimitInputData>());
 				return dao.CreateGearboxData(gearboxInput, engineData, ((IAxleGearInputData)gearboxInput).Ratio, 0.5.SI<Meter>(),
-					VehicleCategory.RigidTruck, (ITorqueConverterDeclarationInputData)gearboxInput);
+					VehicleCategory.RigidTruck, (ITorqueConverterDeclarationInputData)gearboxInput, false);
 			} else {
 				var dao = new EngineeringDataAdapter();
 				var runData = new MockEngineeringVehicleInputData() {
@@ -78,7 +78,7 @@ namespace TUGraz.VectoCore.Tests.Utils
 				var engineData = dao.CreateEngineData(runData, engineInput.EngineModes.First());
 				return dao.CreateGearboxData(gearboxInput, engineData, (IGearshiftEngineeringInputData)gearboxInput, 
 					((IAxleGearInputData)gearboxInput).Ratio, 0.5.SI<Meter>(),
-					VehicleCategory.RigidTruck, (ITorqueConverterEngineeringInputData)gearboxInput);
+					VehicleCategory.RigidTruck, (ITorqueConverterEngineeringInputData)gearboxInput, false);
 			}
 		}