diff --git a/CHANGES.md b/CHANGES.md
index eeacd373b08a5c6b0895f0926cf970ecb18cad4c..1bba9672b06db4713db40e5e2357ca3d8ec44759 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -3,6 +3,11 @@
 
 
 
+### VECTO 2.0.4-beta2
+* Bugfix: VECTO freezed if torque converter creeping was not possible due to low full load torque. Now it will abort with error message.
+* Bugfix: Small fixes in torque converter model
+
+
 ### VECTO 2.0.4-beta1
 * Updated CSV format of some declaration config files
 * Various bugfixes in AT model
diff --git a/User Manual/usermanual.html b/User Manual/usermanual.html
index 27890a575768a0bc4b955c7a599da46fa838f5ca..cc996d43b4832632a049e9f67745acc9b98e73b3 100644
--- a/User Manual/usermanual.html	
+++ b/User Manual/usermanual.html	
@@ -4,7 +4,7 @@
 <HEAD>
 <TITLE>VECTO User Manual</TITLE>
 </HEAD>
- <FRAMESET rows="82,*,50" frameborder=0>
+ <FRAMESET rows="82,*,50" frameborder="0">
 	<FRAME src="main/head.html"> 
 	<FRAMESET cols="25%, *"  >
 		<FRAME src="main/index.html">
diff --git a/VECTO/GUI/F_ENG.vb b/VECTO/GUI/F_ENG.vb
index 06262fa82a7c631a7b657ec4d5fc32bb975b2d72..abe0dc0bc0a6fd84b62df76baa67c69029ef2e2d 100644
--- a/VECTO/GUI/F_ENG.vb
+++ b/VECTO/GUI/F_ENG.vb
@@ -555,26 +555,27 @@ Public Class F_ENG
 
             If IsNumeric(Me.TbNleerl.Text) AndAlso Me.TbNleerl.Text > 0 Then
 
-                FLD0.Init(CSng(Me.TbNleerl.Text))
-
-                Shiftpoly = New cGBX.cShiftPolygon("", 0)
-                Shiftpoly.SetGenericShiftPoly(FLD0, Me.TbNleerl.Text)
-
-                s = New System.Windows.Forms.DataVisualization.Charting.Series
-                s.Points.DataBindXY(Shiftpoly.gs_nUup, Shiftpoly.gs_TqUp)
-                s.ChartType = DataVisualization.Charting.SeriesChartType.FastLine
-                s.BorderWidth = 2
-                s.Color = Color.DarkRed
-                s.Name = "Upshift curve"
-                MyChart.Series.Add(s)
-
-                s = New System.Windows.Forms.DataVisualization.Charting.Series
-                s.Points.DataBindXY(Shiftpoly.gs_nUdown, Shiftpoly.gs_TqDown)
-                s.ChartType = DataVisualization.Charting.SeriesChartType.FastLine
-                s.BorderWidth = 2
-                s.Color = Color.DarkRed
-                s.Name = "Downshift curve"
-                MyChart.Series.Add(s)
+                If FLD0.Init(CSng(Me.TbNleerl.Text)) Then
+
+                    Shiftpoly = New cGBX.cShiftPolygon("", 0)
+                    Shiftpoly.SetGenericShiftPoly(FLD0, Me.TbNleerl.Text)
+
+                    s = New System.Windows.Forms.DataVisualization.Charting.Series
+                    s.Points.DataBindXY(Shiftpoly.gs_nUup, Shiftpoly.gs_TqUp)
+                    s.ChartType = DataVisualization.Charting.SeriesChartType.FastLine
+                    s.BorderWidth = 2
+                    s.Color = Color.DarkRed
+                    s.Name = "Upshift curve"
+                    MyChart.Series.Add(s)
+
+                    s = New System.Windows.Forms.DataVisualization.Charting.Series
+                    s.Points.DataBindXY(Shiftpoly.gs_nUdown, Shiftpoly.gs_TqDown)
+                    s.ChartType = DataVisualization.Charting.SeriesChartType.FastLine
+                    s.BorderWidth = 2
+                    s.Color = Color.DarkRed
+                    s.Name = "Downshift curve"
+                    MyChart.Series.Add(s)
+                End If
 
             End If
 
diff --git a/VECTO/GUI/F_VECTO.vb b/VECTO/GUI/F_VECTO.vb
index 96b28e36db05b49b76e21c52b0d0feea63259ef3..75dcedfd43425ffb62477c4ccb08f9a8c6f3be3c 100644
--- a/VECTO/GUI/F_VECTO.vb
+++ b/VECTO/GUI/F_VECTO.vb
@@ -1130,8 +1130,8 @@ Public Sub UpdatePic()
                     MyChart.Series.Add(s)
 
                     If Cfg.DeclMode Then
-                        FLD0.Init(ENG0.Nidle)
 
+                        If FLD0.Init(ENG0.Nidle) Then
                         Shiftpoly = New cGBX.cShiftPolygon("", 0)
                         Shiftpoly.SetGenericShiftPoly(FLD0, ENG0.Nidle)
 
@@ -1150,6 +1150,7 @@ Public Sub UpdatePic()
                         s.Color = Color.DarkRed
                         s.Name = "Downshift curve"
                         MyChart.Series.Add(s)
+                        End If
 
                     End If
 
diff --git a/VECTO/Input Files/cDRI.vb b/VECTO/Input Files/cDRI.vb
index d6ecf6fe1093479b4184b57d427e73bcb470cb76..f18bd6d4a01c440b9dd154668eb59757db3db972 100644
--- a/VECTO/Input Files/cDRI.vb	
+++ b/VECTO/Input Files/cDRI.vb	
@@ -694,6 +694,11 @@ lbEr:
         If AuxDef Then AuxComponents = hzAuxValues
         tDim = Values(tDriComp.V).Count - 1
 
+        For i = 0 To tDim
+            If Values(tDriComp.V)(i) < 0.5 Then Values(tDriComp.V)(i) = 0
+        Next
+
+
         Return True
 
     End Function
diff --git a/VECTO/Input Files/cENG.vb b/VECTO/Input Files/cENG.vb
index 3db09eab295eb97abc66d5e6a4b6f8c4b37fd508..1d1be37069767552d482a08867bd2b3c1dd3c251 100644
--- a/VECTO/Input Files/cENG.vb	
+++ b/VECTO/Input Files/cENG.vb	
@@ -387,7 +387,7 @@ End Property
                 Return False
             End Try
 
-            FLD(i).Init(Nidle)
+            If Not FLD(i).Init(Nidle) Then Return False
 
         Next
 
diff --git a/VECTO/Input Files/cFLD.vb b/VECTO/Input Files/cFLD.vb
index 00b72ca34815482de352ff5ab93b2a2b794cfd3f..37d858a9607461a0cf00be0684145eb85c4c7f0b 100644
--- a/VECTO/Input Files/cFLD.vb	
+++ b/VECTO/Input Files/cFLD.vb	
@@ -330,6 +330,8 @@ lbInt:
 
         N95h = fnUofPfull(0.95 * Pfull(fnUrated), False)
 
+        If N95h < 0 Then Return -1
+
         Amax = Area(Nidle, N95h)
 
         For i = 0 To iDim - 1
@@ -465,6 +467,8 @@ lbInt:
             LastPe = nMtoPe(nU, Tq(nU))
             nUtarget = nU
 
+            If LastPe > PeTarget Then Return -1
+
             Do
                 Pe = nMtoPe(nU, Tq(nU))
 
@@ -486,6 +490,8 @@ lbInt:
             LastPe = nMtoPe(nU, Tq(nU))
             nUtarget = nU
 
+            If LastPe > PeTarget Then Return -1
+
             Do
                 Pe = nMtoPe(nU, Tq(nU))
 
@@ -525,20 +531,45 @@ lbInt:
 
     End Function
 
-    Public Sub Init(ByVal Nidle As Single)
+    Public Function Init(ByVal Nidle As Single) As Boolean
         Dim Pmax As Single
+        Dim MsgSrc As String
+
+        MsgSrc = "Main/ReadInp/Eng.Init"
 
         Pmax = Pfull(fnUrated)
 
         Nlo = fnUofPfull(0.55 * Pmax, True)
 
+        If Nlo < 0 Then
+            WorkerMsg(tMsgID.Err, "Failed to calculate Nlo! Check full load curve!", MsgSrc)
+            Return False
+        End If
+
         N95h = fnUofPfull(0.95 * Pmax, False)
 
+        If N95h < 0 Then
+            WorkerMsg(tMsgID.Err, "Failed to calculate N95h! Check full load curve!", MsgSrc)
+            Return False
+        End If
+
         Npref = fNpref(Nidle)
 
+        If Npref < 0 Then
+            WorkerMsg(tMsgID.Err, "Failed to calculate Npref! Check full load curve!", MsgSrc)
+            Return False
+        End If
+
         Nhi = fnUofPfull(0.7 * Pmax, False)
 
-    End Sub
+        If Nhi < 0 Then
+            WorkerMsg(tMsgID.Err, "Failed to calculate Nhi! Check full load curve!", MsgSrc)
+            Return False
+        End If
+
+        Return True
+
+    End Function
 
     Public Sub DeclInit()
         Dim i As Integer
diff --git a/VECTO/Input Files/cGBX.vb b/VECTO/Input Files/cGBX.vb
index 2572a14173f5a5fad40d88a543ceb336d4cba4b2..7ce091a5489e4a4d799146323da53e9a0cb5e92e 100644
--- a/VECTO/Input Files/cGBX.vb	
+++ b/VECTO/Input Files/cGBX.vb	
@@ -66,6 +66,8 @@ Public Class cGBX
     Public TCnUout As Single
     Public TCReduce As Boolean
     Public TCNeutral As Boolean
+    Public TC_mu As Single
+    Public TC_nu As Single
     Private TCnuMax As Single
 
 
@@ -465,10 +467,20 @@ Public Class cGBX
             nuMax = Math.Min(TCnu(TCdim), nUout / ENG.Nidle)
 
         Else
-            nuMin = Math.Max(nUout / ENG.Nrated, TCnu(0))
+            nuMin = Math.Max(nUout / FLD(Gear).N95h, TCnu(0))
             nuMax = Math.Min(TCnuMax, nUout / ENG.Nidle)
         End If
 
+        If nuMax <= nuMin Then
+            TCReduce = True
+            Return True
+        End If
+
+        'Reduce step size if nu-range is too low
+        Do While (nuMax - nuMin) / nuStep < 10
+            nuStep *= 0.1
+        Loop
+
         FirstDone = False
         nu = nuMin - nuStep
         iDim = -1
@@ -539,7 +551,7 @@ Public Class cGBX
             'Min
             Min = Mout / mu
 
-            'Correct Min if too high
+            'Check if Min is too high
             If Min > MinMax Then Continue Do
 
             'Calculated output torque for given mu
@@ -617,6 +629,9 @@ Public Class cGBX
         TCMin = TCMout / mu
         TCnUout = nUout
 
+        TC_mu = mu
+        TC_nu = nu
+
         If Brake Then TC_PeBrake = nMtoPe(TCnUout, Mout - TCMout)
 
 
diff --git a/VECTO/MODcalc/cMOD.vb b/VECTO/MODcalc/cMOD.vb
index 3bee33e8ee00568bd2c454ac3067840a88887610..4a7757976cfa56d72d7d1e432f20bfa2d56d9107 100644
--- a/VECTO/MODcalc/cMOD.vb
+++ b/VECTO/MODcalc/cMOD.vb
@@ -34,6 +34,7 @@ Public Class cMOD
     Public PlossGB As List(Of Single)
     Public PlossDiff As List(Of Single)
     Public PlossRt As List(Of Single)
+    Public PlossTC As List(Of Single)
     Public PaEng As List(Of Single)
     Public PaGB As List(Of Single)
     Public Paux As Dictionary(Of String, List(Of Single))
@@ -146,6 +147,7 @@ Public Class cMOD
         PlossGB = New List(Of Single)
         PlossDiff = New List(Of Single)
         PlossRt = New List(Of Single)
+        PlossTC = New List(Of Single)
         PaEng = New List(Of Single)
         PaGB = New List(Of Single)
         Paux = New Dictionary(Of String, List(Of Single))
@@ -199,6 +201,7 @@ Public Class cMOD
             PlossGB = Nothing
             PlossDiff = Nothing
             PlossRt = Nothing
+            PlossTC = Nothing
             PaEng = Nothing
             PaGB = Nothing
             Paux = Nothing
@@ -503,6 +506,7 @@ Public Class cMOD
 
         Dim f As cFile_V3
         Dim s As System.Text.StringBuilder
+        Dim su As System.Text.StringBuilder
         Dim t As Integer
         Dim t1 As Integer
 
@@ -516,6 +520,8 @@ Public Class cMOD
 
         Dim AuxList As New List(Of String)
 
+        Dim HeaderList As New List(Of String())
+
         Dim Gear As Integer
 
         MsgSrc = "MOD/Output"
@@ -553,40 +559,68 @@ Public Class cMOD
         Next
 
 
-        'f.WriteLine("VECTO modal results")
-        'f.WriteLine("VECTO " & VECTOvers)
-        'f.WriteLine(Now.ToString)
-        'f.WriteLine("Input File: " & JobFile)
+        If DEV.AdvFormat Then
+            f.WriteLine("VECTO " & VECTOvers)
+            f.WriteLine(Now.ToString)
+            f.WriteLine("Input File: " & JobFile)
+        End If
 
 
         '***********************************************************************************************
         '***********************************************************************************************
         '***********************************************************************************************
         '*** Header & Units ****************************************************************************
+
         s.Length = 0
 
-        s.Append("time [s]")
 
-        If Not VEC.EngOnly Then
+        HeaderList.Add(New String() {"time", "s"})
 
-            s.Append(",dist [m],v_act [km/h],v_targ [km/h],acc [m/s^2],grad [%]")
+        If Not VEC.EngOnly Then
+            HeaderList.Add(New String() {"dist", "m"})
+            HeaderList.Add(New String() {"v_act", "km/h"})
+            HeaderList.Add(New String() {"v_targ", "km/h"})
+            HeaderList.Add(New String() {"acc", "m/s²"})
+            HeaderList.Add(New String() {"grad", "%"})
             dist = 0
-
         End If
 
-        s.Append(",n [1/min],Tq_eng [Nm],Tq_clutch [Nm],Tq_full [Nm],Tq_drag [Nm],Pe_eng [kW],Pe_full [kW],Pe_drag [kW],Pe_clutch [kW],Pa Eng [kW],Paux [kW]")
+        HeaderList.Add(New String() {"n", "1/min"})
+        HeaderList.Add(New String() {"Tq_eng", "Nm"})
+        HeaderList.Add(New String() {"Tq_clutch", "Nm"})
+        HeaderList.Add(New String() {"Tq_full", "Nm"})
+        HeaderList.Add(New String() {"Tq_drag", "Nm"})
+        HeaderList.Add(New String() {"Pe_eng", "kW"})
+        HeaderList.Add(New String() {"Pe_full", "kW"})
+        HeaderList.Add(New String() {"Pe_drag", "kW"})
+        HeaderList.Add(New String() {"Pe_clutch", "kW"})
+        HeaderList.Add(New String() {"Pa", "Eng", "kW"})
+        HeaderList.Add(New String() {"Paux", "kW"})
 
         If Not VEC.EngOnly Then
 
-            s.Append(",Gear [-],Ploss GB [kW],Ploss Diff [kW],Ploss Retarder [kW],Pa GB [kW],Pa Veh [kW],Proll [kW],Pair [kW],Pgrad [kW],Pwheel [kW],Pbrake [kW]")
+            HeaderList.Add(New String() {"Gear", "-"})
+            HeaderList.Add(New String() {"Ploss GB", "kW"})
+            HeaderList.Add(New String() {"Ploss Diff", "kW"})
+            HeaderList.Add(New String() {"Ploss Retarder", "kW"})
+            HeaderList.Add(New String() {"Pa GB", "kW"})
+            HeaderList.Add(New String() {"Pa Veh", "kW"})
+            HeaderList.Add(New String() {"Proll", "kW"})
+            HeaderList.Add(New String() {"Pair", "kW"})
+            HeaderList.Add(New String() {"Pgrad", "kW"})
+            HeaderList.Add(New String() {"Pwheel", "kW"})
+            HeaderList.Add(New String() {"Pbrake", "kW"})
 
             If GBX.TCon Then
-                s.Append(",TCν [-],TCμ [-],TC_T_Out [Nm],TC_n_Out [1/min]")
+                HeaderList.Add(New String() {"TCν", "-"})
+                HeaderList.Add(New String() {"TCµ", "-"})
+                HeaderList.Add(New String() {"TC_T_Out", "Nm"})
+                HeaderList.Add(New String() {"TC_n_Out", "1/min"})
             End If
 
             'Auxiliaries
             For Each StrKey In AuxList
-                s.Append(",Paux_" & StrKey & " [kW]")
+                HeaderList.Add(New String() {"Paux_" & StrKey, "kW"})
             Next
 
             'AA-TB
@@ -621,18 +655,33 @@ Public Class cMOD
 
         End If
 
+        HeaderList.Add(New String() {"FC", "g/h"})
+        HeaderList.Add(New String() {"FC-AUXc", "g/h"})
+        HeaderList.Add(New String() {"FC-WHTCc", "g/h"})
 
-        'FC
-        s.Append(Sepp & "FC [g/h]")
 
-        s.Append(Sepp & "FC-AUXc [g/h]")
+        'Write to File
+        If DEV.AdvFormat Then
+            su = New System.Text.StringBuilder
+            s.Append(HeaderList(0)(0))
+            su.Append("[" & HeaderList(0)(1) & "]")
+            For t = 1 To HeaderList.Count - 1
+                s.Append(Sepp & HeaderList(t)(0))
+                su.Append(Sepp & "[" & HeaderList(t)(1) & "]")
+            Next
+            f.WriteLine(s.ToString)
+            f.WriteLine(su.ToString)
+        Else
+            s.Append(HeaderList(0)(0) & " [" & HeaderList(0)(1) & "]")
+            For t = 1 To HeaderList.Count - 1
+                s.Append(Sepp & HeaderList(t)(0) & " [" & HeaderList(t)(1) & "]")
+            Next
+            f.WriteLine(s.ToString)
+        End If
+      
 
-        s.Append(Sepp & "FC-WHTCc [g/h]")
 
 
-        'Write to File
-        '   Header
-        f.WriteLine(s.ToString)
 
 
         '***********************************************************************************************
diff --git a/VECTO/MODcalc/cPower.vb b/VECTO/MODcalc/cPower.vb
index 90ee8acb8d509b6e3072443fab2134286e4acd02..bc3c05bae5dfe828bcc92f9a319a3ff55020bcee 100644
--- a/VECTO/MODcalc/cPower.vb
+++ b/VECTO/MODcalc/cPower.vb
@@ -11,7 +11,7 @@
 Imports System.Collections.Generic
 
 Public Class cPower
- 
+
     Private ClutchNorm As Single    'Normalized clutch speed
     Private ClutchEta As Single       'clutch efficiency
 
@@ -71,7 +71,6 @@ Public Class cPower
         Dim adec As Single
         Dim LookAheadDone As Boolean
         Dim aCoasting As Single
-        Dim aRollout As Single
         Dim Gears As New List(Of Integer)
         Dim vRollout As Single
         Dim ProgBarShare As Int16
@@ -93,7 +92,7 @@ Public Class cPower
 
         'AA-TB
         'Try and Initialise the Advanced Aux Model if selected.
-        If VEC.AuxiliaryAssembly<>"CLASSIC" then  
+        If VEC.AuxiliaryAssembly<>"CLASSIC" then
            WorkerMsg(tMsgID.Normal,"Initialising Advanced Auxiliaries Model", MsgSrc)
            If mAAUX_Global.InitialiseAdvancedAuxModel(VEC.AdvancedAuxiliaryFilePath) then
              'Setting Mode / WHTC  for fueling in model.
@@ -105,7 +104,7 @@ Public Class cPower
              return false
            End If
         End If
-   
+
 
         'Check Input
         If VEC.LookAheadOn AndAlso VEC.a_lookahead >= 0 Then
@@ -155,6 +154,7 @@ Public Class cPower
             dist.Add(dist(i - 1) + Vh.V(i))
         Next
 
+
         'Generate Positions List
         For i = 0 To MODdata.tDim
             Positions.Add(0)
@@ -172,7 +172,7 @@ Public Class cPower
         Do
             i += 1
 
-            'Check if cancellation pending 
+            'Check if cancellation pending
             If VECTOworker.CancellationPending Then Return True
 
             Vact = Vh.V(i)
@@ -194,6 +194,7 @@ Public Class cPower
                 End If
             End If
 
+
             'Wheel-Power
             Pwheel = fPwheel(i, Vh.fGrad(dist(i)))
 
@@ -234,7 +235,7 @@ Public Class cPower
 
             End If
 
-            'ICE-inertia   
+            'ICE-inertia
             If i = 0 Then
                 PaMot = 0
             Else
@@ -303,24 +304,26 @@ Public Class cPower
             'AA-TB REMOVED
            ' Paux = fPaux(i, nU)
 
-            'Engine Power (at Clutch)
-            If Pplus Or Pminus Then
 
+            'Calculate powertrain losses => power at clutch
+            If Pplus Or Pminus Then
                 PlossGB = fPlossGB(Pwheel, Vact, Gear, True)
                 PlossDiff = fPlossDiff(Pwheel, Vact, True)
                 PlossRt = fPlossRt(Vact, Gear)
                 PaGetr = fPaG(Vact, aact)
-
                 Pkup = Pwheel + PlossGB + PlossDiff + PaGetr + PlossRt
-                P = Pkup + Paux + PaMot
-
             Else
-
                 Pkup = 0
-                P = Paux + PaMot
-
             End If
 
+            'Total aux power
+            '[kW]
+            Paux = fPaux(i, nU)
+
+            'Internal Engine Power (Pclutch plus Aux plus Inertia)
+            P = Pkup + Paux + PaMot
+
+
             'Full load / motoring
             Pmin = FLD(Gear).Pdrag(nU)
 
@@ -336,7 +339,6 @@ Public Class cPower
                         Vmax = MODdata.Vh.Vsoll(i) + VEC.OverSpeed / 3.6
                         Vmin = Math.Max(0, MODdata.Vh.Vsoll(i) - VEC.UnderSpeed / 3.6)
                         vRollout = fRolloutSpeed(i, 1, Vh.fGrad(dist(i)))
-                        aRollout = (2 * vRollout - Vh.V0(i)) - Vh.V0(i)
 
                         If vRollout < Vmin Then
 
@@ -436,7 +438,7 @@ Public Class cPower
             'Secondary Progressbar
             If ProgBarLACpart > 0 Then ProgBarCtrl.ProgJobInt = CInt((100 / ProgBarShare) * (MODdata.tDim - i) / MODdata.tDim + (ProgBarLACpart - 1) * (100 / ProgBarShare))
 
-            'Check if cancellation pending 
+            'Check if cancellation pending
             If VECTOworker.CancellationPending Then Return True
 
             If Positions(i) = 1 Then
@@ -562,16 +564,14 @@ Public Class cPower
         Dim PlossGB As Single
         Dim PlossDiff As Single
         Dim PlossRt As Single
+        Dim PlossTC As Single
         Dim GVset As Boolean
         Dim Vrollout As Single
         Dim SecSpeedRed As Integer
         Dim FirstSecItar As Boolean
         Dim TracIntrIs As Single
-
         Dim amax As Single
-
         Dim ProgBarShare As Int16
-
         Dim LastPmax As Single
         Dim dist As Double
         Dim dist0 As Double
@@ -677,7 +677,7 @@ lbGschw:
             Vact = Vh.V(jz)
             aact = Vh.a(jz)
 
-            'distance 
+            'distance
             dist = dist0 + Vact
 
             StStPossible = False
@@ -760,11 +760,15 @@ lbGschw:
 
             'Eco-Roll Speed Correction (because PreRun speed profile might still be too high or speed might generally be too low)
             If Vh.EcoRoll(jz) AndAlso Vact > MODdata.Vh.Vsoll(jz) - VEC.UnderSpeed / 3.6 AndAlso Not VehState0 = tVehState.Stopped AndAlso Pplus Then
-                Vh.ReduceSpeed(jz, 0.9999)
+                If Not Vh.ReduceSpeed(jz, 0.9999) Then
+                    WorkerMsg(tMsgID.Err, "Engine full load too low for vehicle start (speed reduction failed) !", MsgSrc & "/t= " & jz + 1)
+                    Return False
+                End If
                 FirstSecItar = False
                 GoTo lbGschw
             End If
 
+
             '************************************ Gear selection ************************************
             If VehState0 = tVehState.Stopped Or TracIntrOn Then
 
@@ -979,7 +983,10 @@ lbCheck:
                     End If
 
                     If GBX.TCReduce Then
-                        Vh.ReduceSpeed(jz, 0.999)
+                        If Not Vh.ReduceSpeed(jz, 0.999) Then
+                            WorkerMsg(tMsgID.Err, "Engine full load too low for vehicle start (speed reduction failed) !", MsgSrc & "/t= " & jz + 1)
+                            Return False
+                        End If
                         FirstSecItar = False
                         GoTo lbGschw
                     End If
@@ -1002,7 +1009,9 @@ lbCheck:
                     If Clutch = tEngClutch.Closed Then
                         If nU < ENG.Nidle + 0.0001 Then
                             Gear -= 1
-                            nU = fnU(Vact, Gear, Clutch = tEngClutch.Slipping)
+                            If Gear = 0 Then Clutch = tEngClutch.Opened
+                            GoTo lbCheck
+                            'nU = fnU(Vact, Gear, Clutch = tEngClutch.Slipping)
                         End If
                     End If
 
@@ -1074,39 +1083,64 @@ lb_nOK:
             '   => Pantr
             '   => P
             '   => Pkup
+            'Power at clutch
             Select Case Clutch
                 Case tEngClutch.Opened
-                    P = Paux + PaMot
                     Pclutch = 0
                     PlossGB = 0
                     PlossDiff = 0
                     PlossRt = 0
+                    PlossTC = 0
                     PaGbx = 0
                 Case tEngClutch.Closed
 
                     If GBX.TCon And GBX.IsTCgear(Gear) Then
 
-                        P = nMtoPe(nU, GBX.TCMin) + Paux + PaMot
+                        Pclutch = nMtoPe(nU, GBX.TCMin)
+
+                        If P >= 0 Then
+                            PlossTC = Math.Abs(nMtoPe(GBX.TCnUin, GBX.TCMin) * (1 - GBX.TC_mu * GBX.TC_nu))
+                        Else
+                            PlossTC = Math.Abs(nMtoPe(GBX.TCnUout, GBX.TCMout) * (1 - GBX.TC_mu * GBX.TC_nu))
+                        End If
 
                     Else
 
                         PlossGB = fPlossGB(Pwheel, Vact, Gear, False)
                         PlossDiff = fPlossDiff(Pwheel, Vact, False)
                         PlossRt = fPlossRt(Vact, Gear)
+                        PlossTC = 0
                         PaGbx = fPaG(Vact, aact)
                         Pclutch = Pwheel + PlossGB + PlossDiff + PaGbx + PlossRt
-                        P = Pclutch + Paux + PaMot
 
                     End If
                 Case Else 'tEngClutch.Slipping: never in AT mode!
                     PlossGB = fPlossGB(Pwheel, Vact, Gear, False)
                     PlossDiff = fPlossDiff(Pwheel, Vact, False)
                     PlossRt = fPlossRt(Vact, Gear)
+                    PlossTC = 0
                     PaGbx = fPaG(Vact, aact)
                     Pclutch = (Pwheel + PlossGB + PlossDiff + PaGbx + PlossRt) / ClutchEta
-                    P = Pclutch + Paux + PaMot
             End Select
 
+
+            'Total aux power
+            '[kW]
+            Paux = fPaux(jz, Math.Max(nU, ENG.Nidle))
+
+
+            'ICE-inertia
+            If jz = 0 Then
+                PaMot = 0
+            Else
+                'Not optimal since jz-1 to jz not the right interval
+                PaMot = fPaMot(nU, MODdata.nU(jz - 1))
+            End If
+
+            'Internal Engine Power (Pclutch plus Aux plus Inertia)
+            P = Pclutch + Paux + PaMot
+
+
             'EngState
             If Clutch = tEngClutch.Opened Then
 
@@ -1189,12 +1223,12 @@ lb_nOK:
 
                 If P < Pmin Then P = Pmin
 
-                'AA-TB 
+                'AA-TB
                 mAAUX_Global.Internal_Engine_Power = P
 
             Else
 
-                'AA-TB 
+                'AA-TB
                 mAAUX_Global.Internal_Engine_Power = P
 
                 If EngState0 = tEngState.Load Then
@@ -1305,7 +1339,7 @@ lb_nOK:
             '--------------------------------------------------------------------------------------------------
             '   Finish Second
 
-            'distance 
+            'distance
             dist0 += Vact
 
             'Start / Stop - Activation-Speed Control
@@ -1350,6 +1384,7 @@ lb_nOK:
             MODdata.PlossGB.Add(PlossGB)
             MODdata.PlossDiff.Add(PlossDiff)
             MODdata.PlossRt.Add(PlossRt)
+            MODdata.PlossTC.Add(PlossTC)
             MODdata.PaEng.Add(PaMot)
             MODdata.PaGB.Add(PaGbx)
             MODdata.Pclutch.Add(Pclutch)
@@ -1412,7 +1447,7 @@ lb_nOK:
                     End If
 
                     Vrollout = fRolloutSpeed(jz + 1, TracIntrIs, Vh.fGrad(dist))
-                    If Vrollout < Vact Or VehState0 <> tVehState.Dec Then Vh.SetSpeed(jz + 1, Vrollout)
+                    If Vrollout < Vh.V(jz + 1) Or VehState0 <> tVehState.Dec Then Vh.SetSpeed(jz + 1, Vrollout)
 
                 End If
 
@@ -1445,8 +1480,8 @@ lb_nOK:
 
             LastPmax = Pmax
 
-        'AA-TB    
-        'Aggregate Fuel On Last Known Signals.  
+        'AA-TB
+        'Aggregate Fuel On Last Known Signals.
         If Not mAAUX_Global.advancedAuxModel is nothing
 
          'EngineState ( used for start stop fueling adjustment )
@@ -1480,7 +1515,7 @@ lb_nOK:
          ModData.AA_CompressorFlag                                 .Add( advancedAuxModel.AA_CompressorFlag)
          ModData.AA_TotalCycleFC_Grams                             .Add( advancedAuxModel.AA_TotalCycleFC_Grams)
          ModData.AA_TotalCycleFC_Litres                            .Add( advancedAuxModel.AA_TotalCycleFC_Litres)
-                                                                  
+
 
          'TODO:DIAGNOSTICS - REMOVE WHEN TESTED
          'ModData.AA_D_M12_P1X                                      .Add( advancedAuxModel.AA_D_M12_P1X)
@@ -1497,7 +1532,7 @@ lb_nOK:
          Catch ex   as Exception
 
             Dim dummy As Single=0
-            
+
 
 
          End try
@@ -1509,7 +1544,7 @@ lb_nOK:
         Loop Until jz >= MODdata.tDim
 
 
-    
+
         '***********************************************************************************************
         '***********************************    Time loop END ***********************************
         '***********************************************************************************************
@@ -1575,9 +1610,9 @@ lb_nOK:
             'Reset the second-by-second Errors
             MODdata.ModErrors.ResetAll()
 
-            'OLD and wrong because not time shifted: P_mr(jz) = 0.001 * (I_mot * 0.0109662 * (n(jz) * nnrom) * nnrom * (n(jz) - n(jz - 1))) 
+            'OLD and wrong because not time shifted: P_mr(jz) = 0.001 * (I_mot * 0.0109662 * (n(jz) * nnrom) * nnrom * (n(jz) - n(jz - 1)))
             If t > 0 And t < t1 Then
-                Pmr = 0.001 * (ENG.I_mot * (2 * Math.PI / 60) ^ 2 * MODdata.nU(t) * 0.5 * (MODdata.nU(t + 1) - MODdata.nU(t - 1)))
+                Pmr = 0.001 * (ENG.I_mot * (2 * Math.PI / 60) ^ 2 * ((MODdata.nU(t + 1) + MODdata.nU(t - 1)) / 2) * 0.5 * (MODdata.nU(t + 1) - MODdata.nU(t - 1)))
             Else
                 Pmr = 0
             End If
@@ -1787,10 +1822,10 @@ lb_nOK:
         nU = fnU(v, Gear, False)
         Pdrag = FLD(Gear).Pdrag(nU)
 
-        'Do not allow positive road gradients     
+        'Do not allow positive road gradients
         Grad = MODdata.Vh.fGrad(s)
 
-        
+
         Pwheel = fPwheel(t, v, a, Grad)
         Pe = Pwheel + fPlossGB(Pwheel, v, Gear, True) + fPlossDiff(Pwheel, v, True) + fPaG(v, a) + fPlossRt(v, Gear) + fPaux(t, nU) + fPaMotSimple(t, Gear, v, a)
 
@@ -2003,7 +2038,7 @@ lb_nOK:
                 'Max torque
                 MdMax = Pmax * 1000 / (nU * 2 * Math.PI / 60)
 
-                'Find highest gear with rpm below Upshift-rpm and with enough torque reserve 
+                'Find highest gear with rpm below Upshift-rpm and with enough torque reserve
                 If nU < nUup And nU > nUdown And 1 - Tq / MdMax >= GBX.gs_TorqueResv / 100 Then
                     Exit For
                 ElseIf nU > nUup And Gear < GBX.GearCount Then
@@ -2014,7 +2049,7 @@ lb_nOK:
 
         Else
 
-            'Calculate Start Gear 
+            'Calculate Start Gear
             For Gear = GBX.GearCount To 1 Step -1
 
                 'rpm at StartSpeed  [m/s]
@@ -2177,7 +2212,7 @@ lb_nOK:
         If t = 0 OrElse MODdata.VehState(t - 1) = tVehState.Stopped Then Return fStartGear(t, Grad)
 
 
-        '********* Gear Shift Polygon Model ********* 
+        '********* Gear Shift Polygon Model *********
 
         'Previous normalized engine power
         LastPeNorm = MODdata.Pe(t - 1)
@@ -2190,6 +2225,9 @@ lb_nOK:
             tx += 1
         Loop
 
+        'First time step after stand still
+        If LastGear = 0 Then Return fStartGear(t, Grad)
+
         nU = CSng(Vact * 60.0 * GBX.Igetr(0) * GBX.Igetr(LastGear) / (2 * VEH.rdyn * Math.PI / 1000))
 
         OutOfRpmRange = ((nU - ENG.Nidle) / (ENG.Nrated - ENG.Nidle) >= 1.2 Or nU < ENG.Nidle)
@@ -2229,7 +2267,7 @@ lb_nOK:
         nnUp = GBX.Shiftpolygons(LastGear).fGSnUup(Tq)
         nnDown = GBX.Shiftpolygons(LastGear).fGSnUdown(Tq)
 
-        'Compare rpm with Up/Downshift rpms 
+        'Compare rpm with Up/Downshift rpms
         If nU <= nnDown And LastGear > 1 Then
 
             'Shift DOWN
@@ -2385,7 +2423,7 @@ lb_nOK:
 
 lb10:
         '*** Error-Msg-Check ***
-        'Current rpm 
+        'Current rpm
         nU = fnU(Vact, Gear, Clutch = tEngClutch.Slipping)
         'Current power demand
         Pe = Math.Min(fPeGearMod(Gear, t, Grad), FLD(Gear).Pfull(nU))
@@ -2526,9 +2564,9 @@ lb10:
 
     Public Function fPaMot(ByVal nU As Single, ByVal nUBefore As Single) As Single
         If GBX.TCon Then
-            Return ((ENG.I_mot + GBX.TCinertia) * (nU - nUBefore) * 0.01096 * nU) * 0.001
+            Return ((ENG.I_mot + GBX.TCinertia) * (nU - nUBefore) * 0.01096 * ((nU + nUBefore) / 2)) * 0.001
         Else
-            Return (ENG.I_mot * (nU - nUBefore) * 0.01096 * nU) * 0.001
+            Return (ENG.I_mot * (nU - nUBefore) * 0.01096 * ((nU + nUBefore) / 2)) * 0.001
         End If
     End Function
 
@@ -2542,7 +2580,7 @@ lb10:
     'NOTES TO SELF FOR MONDAY
 
     'IF WE HANDLE THE MODEL HERE, THEN WE NEED TO DISCRIMINATE IF TO SINGLE STEP OR NOT BECAUSE WE DONT NEED IT IN PREP
-    
+
     'ALSO NEED TO GET VEHICLE MASS AND OTHER THINGS WHEN WE GENERATE THE auxModel in AAUX GLOBAL, DONT HAVE THEM YET
 
     'ENSURE WE ARE ALSO CREATING THIS MODEL IN CYCLE OR AT LEAST CHECK TO SEE IF WE NEED TO, PERHAPS NOT AS POWER
@@ -2570,8 +2608,8 @@ lb10:
       Else
 
       try
-          
-             mAAUX_Global.advancedAuxModel.Signals.ClutchEngaged = mAAUX_Global.ClutchEngaged 
+
+             mAAUX_Global.advancedAuxModel.Signals.ClutchEngaged = mAAUX_Global.ClutchEngaged
              mAAUX_Global.advancedAuxModel.Signals.EngineDrivelinePower  = mAAUX_Global.EngineDrivelinePower
              mAAUX_Global.advancedAuxModel.Signals.EngineDrivelineTorque =mAAUX_Global.EngineDrivelineTorque
              mAAUX_Global.advancedAuxModel.Signals.EngineMotoringPower = mAAUX_Global.EngineMotoringPower
@@ -2597,7 +2635,7 @@ lb10:
             End Try
 
           Return power
-    
+
       End If
 
 
diff --git a/VECTO/MODcalc/cVh.vb b/VECTO/MODcalc/cVh.vb
index 49bd8d01dfdd5dc6d3efb2a94bc903e2caf4dd2c..a7b25d09ac0be85b139184a9eb4ce252e0d16021 100644
--- a/VECTO/MODcalc/cVh.vb
+++ b/VECTO/MODcalc/cVh.vb
@@ -270,7 +270,10 @@ Public Class cVh
         End If
     End Sub
 
-    Public Sub ReduceSpeed(ByVal t As Integer, ByVal p As Single)
+    Public Function ReduceSpeed(ByVal t As Integer, ByVal p As Single) As Boolean
+
+        If lV0(t + 1) = 0 Then Return False
+
         lV0(t + 1) *= p
         lV(t) = (lV0(t + 1) + lV0(t)) / 2
         la(t) = lV0(t + 1) - lV0(t)
@@ -278,7 +281,10 @@ Public Class cVh
             lV(t + 1) = (lV0(t + 2) + lV0(t + 1)) / 2
             la(t + 1) = lV0(t + 2) - lV0(t + 1)
         End If
-    End Sub
+
+        Return True
+
+    End Function
 
 
     Public Sub SetMaxAcc(ByVal t As Integer)
diff --git a/VECTO/M_MAIN.vb b/VECTO/M_MAIN.vb
index cf5ac31552621e4c2a598d395fbca99273666680..662002205781757e95a690d6964b9446e7aee5d6 100644
--- a/VECTO/M_MAIN.vb
+++ b/VECTO/M_MAIN.vb
@@ -793,7 +793,7 @@ lbExit:
         End If
 
         'Must be called after cGBX.ReadFile because cGBX.GearCount is needed
-        ENG.Init()
+        If Not ENG.Init() Then Return False
 
         'Must be called after cENG.Init because FLD must be loaded
         If Cfg.DeclMode Then
diff --git a/VECTO/VECTO_Global.vb b/VECTO/VECTO_Global.vb
index bc23031d2acee61c31c9fb06ed69eeea9bdf6fd9..1d035281f382306d7bc95b0713b11cff8dee7497 100644
--- a/VECTO/VECTO_Global.vb
+++ b/VECTO/VECTO_Global.vb
@@ -12,7 +12,7 @@ Imports System.Collections.Generic
 
 Module VECTO_Global
 
-    Public Const VECTOvers As String = "2.0.4-beta1-AUX.Alpha.3"
+    Public Const VECTOvers As String = "2.0.4-beta2-AUX.Alpha.3"
     Public Const LicSigAppCode As String = "VECTO-Release-0093C61E0A2E4BFA9A7ED7E729C56AE4"
     Public MyAppPath As String
     Public MyConfPath As String
diff --git a/VECTO/cDEV.vb b/VECTO/cDEV.vb
index 0fe8d9afad509f982308e1fae40bb916c2f61f71..06525a91e681f73289e2f987e19093231e6bfe30 100644
--- a/VECTO/cDEV.vb
+++ b/VECTO/cDEV.vb
@@ -21,7 +21,7 @@ Public Class cDEV
     Public TCnUstep As Single
     Public TCnUstepMin As Single
 
-
+    Public AdvFormat As Boolean
 
 
     '**************************************************************************************************************
@@ -132,6 +132,10 @@ Public Class cDEV
         Conf0.SingleVal = 0.01
         MyOptions.Add("TCnUstepMin", Conf0)
 
+        Conf0 = New cDEVoption(tDEVconfType.tBoolean, "Better output files format")
+        Conf0.BoolVal = False
+        MyOptions.Add("AdvFormat", Conf0)
+
         '**************************** END: Parameters Configuration '*****************************
         '*****************************************************************************************
         '*****************************************************************************************
@@ -145,6 +149,7 @@ Public Class cDEV
         TCiterPrec = MyOptions("TCiterPrec").SingleVal
         TCnUstep = MyOptions("TCnUstep").SingleVal
         TCnUstepMin = MyOptions("TCnUstepMin").SingleVal
+        AdvFormat = MyOptions("AdvFormat").BoolVal
     End Sub
 
     'Demo for Delegate Function
diff --git a/VECTO/cVSUM.vb b/VECTO/cVSUM.vb
index 079dc686c2e92dc2bbcdac01df65e837bdfc1947..b5849d2b5a2a529382e11842ba77405d64f814f2 100644
--- a/VECTO/cVSUM.vb
+++ b/VECTO/cVSUM.vb
@@ -39,7 +39,27 @@ Class cVSUM
         First = True
         For Each key In VSUMentryList
             If Not First Then s.Append(",")
+            If DEV.AdvFormat Then
+                s.Append(VSUMentries(key).Head)
+            Else
             s.Append(VSUMentries(key).Head & " " & VSUMentries(key).Unit)
+            End If
+            First = False
+        Next
+
+        Return s.ToString
+
+    End Function
+
+    Public Function VSUMunit() As String
+        Dim s As New System.Text.StringBuilder
+        Dim key As String
+        Dim First As Boolean
+
+        First = True
+        For Each key In VSUMentryList
+            If Not First Then s.Append(",")
+            s.Append(VSUMentries(key).Unit)
             First = False
         Next
 
@@ -271,6 +291,15 @@ Class cVSUM
             Next
             VSUMentries("\\Eretarder").ValueString = (-sum / 3600)
 
+            'TC Losses
+            sum = 0
+            For t = 0 To t1
+                sum += MODdata.PlossTC(t)
+            Next
+            VSUMentries("\\Etorqueconv").ValueString = (-sum / 3600)
+
+
+
             'Masse, Loading
             VSUMentries("\\Mass").ValueString = (VEH.Mass + VEH.MassExtra)
             VSUMentries("\\Loading").ValueString = VEH.Loading
@@ -324,7 +353,12 @@ Class cVSUM
         End Try
 
         '*** Header / Units
+        If DEV.AdvFormat Then
+            Fvsum.WriteLine("Job,Input File,Cycle," & VSUMhead())
+            Fvsum.WriteLine("[-],[-],[-]," & VSUMunit())
+        Else
         Fvsum.WriteLine("Job [-],Input File [-],Cycle [-]," & VSUMhead())
+        End If
 
         'Close file (will open after each job)
         Fvsum.Close()
@@ -521,15 +555,11 @@ Class cVSUM
         ResList = New List(Of Dictionary(Of String, Object))
 
         'Info
-        'Fvsum.WriteLine("VECTO results")
-        'Fvsum.WriteLine("VECTO " & VECTOvers)
-        'Fvsum.WriteLine(Now.ToString)
-        'Fvsum.WriteLine("air density [kg/m3]: " & Cfg.AirDensity)
-        'If Cfg.DistCorr Then
-        '    Fvsum.WriteLine("Distance Correction ON")
-        'Else
-        '    Fvsum.WriteLine("Distance Correction OFF")
-        'End If
+        If DEV.AdvFormat Then
+            Fvsum.WriteLine("VECTO " & VECTOvers)
+            Fvsum.WriteLine(Now.ToString)
+            Fvsum.WriteLine("Input File: " & JobFile)
+        End If
 
         'Close file (will open after each job)
         Fvsum.Close()
@@ -613,7 +643,10 @@ Class cVSUM
             ENG0.FilePath = VEC0.PathENG
 
             Try
-                If Not ENG0.ReadFile Then Return False
+                If Not ENG0.ReadFile Then
+                    WorkerMsg(tMsgID.Err, "File read error! (" & VEC0.PathENG & ")", MsgSrc)
+                    Return False
+                End If
             Catch ex As Exception
                 WorkerMsg(tMsgID.Err, "File read error! (" & VEC0.PathENG & ")", MsgSrc)
                 Return False
@@ -623,7 +656,10 @@ Class cVSUM
             MAP0.FilePath = ENG0.PathMAP
 
             Try
-                If Not MAP0.ReadFile(True) Then Return False
+                If Not MAP0.ReadFile(True) Then
+                    WorkerMsg(tMsgID.Err, "File read error! (" & ENG0.PathMAP & ")", MsgSrc)
+                    Return False
+                End If
             Catch ex As Exception
                 WorkerMsg(tMsgID.Err, "File read error! (" & ENG0.PathMAP & ")", MsgSrc)
                 Return False
@@ -670,6 +706,7 @@ Class cVSUM
             AddToVSUM("\\Ebrake", "Ebrake", "[kWh]")
             AddToVSUM("\\Etransm", "Etransm", "[kWh]")
             AddToVSUM("\\Eretarder", "Eretarder", "[kWh]")
+            AddToVSUM("\\Etorqueconv", "Etorqueconv", "[kWh]")
             AddToVSUM("\\Mass", "Mass", "[kg]")
             AddToVSUM("\\Loading", "Loading", "[kg]")