diff --git a/ShareVecto/VECTO_1.4.zip b/ShareVecto/VECTO_1.4.zip
deleted file mode 100644
index 317966e4376f12ab1bfd732925d384e850d4241a..0000000000000000000000000000000000000000
Binary files a/ShareVecto/VECTO_1.4.zip and /dev/null differ
diff --git a/VECTO Changelog.txt b/VECTO Changelog.txt
index c9eae90c2c93bc51c672900a1e5e5cc50717784c..7e236381e95cec6585c552eb2191538dc4d78867 100644
--- a/VECTO Changelog.txt	
+++ b/VECTO Changelog.txt	
@@ -1,9 +1,15 @@
 VECTO ?.? (future release) TODO
 - User Manual:
 	JSON
+- Correct Pg (sin(arctan(Stg)) statt Stg) and Proll (cos) calculation (Road gradient)   
 
 
 VECTO x.x (current source - next release)
+- Bugfix: Gears using torque converter and transmission loss maps may cause invalid "out of engine operation range" errors
+- Null values for FzISO will abort calculation
+
+
+VECTO 1.4.RC4
 - Bugfix: FC interpolation failed when load points matched map points exactly.
 - Bugfix: Invalid "FC= -10000!" errors when outside of FC-Map
 - Bugfix: Vehicle stand-still at end of cycle was ignored (distance-based cycles only)
diff --git a/VECTO/ApplicationEvents.vb b/VECTO/ApplicationEvents.vb
index 4d9bb95a4f67b4a12726a70f8e53800b385bd9c7..4b074345dc01063ed7ac1a2a401c5ee709fac323 100644
--- a/VECTO/ApplicationEvents.vb
+++ b/VECTO/ApplicationEvents.vb
@@ -39,7 +39,6 @@ Namespace My
                 End Try
                 IO.File.Create(MyConfPath & "joblist.txt")
                 IO.File.Create(MyConfPath & "cyclelist.txt")
-                'IO.File.Create(MyConfPath & "ADVlist.txt")
             End If
             If Not IO.Directory.Exists(FB_FilHisDir) Then
                 Try
diff --git a/VECTO/GUI/F_MAINForm.vb b/VECTO/GUI/F_MAINForm.vb
index 6e6a94968ba7ab871b0cde75d05cf167fb2675e9..14eef85590138cee3fe9107f5fef3e04b14bd310 100644
--- a/VECTO/GUI/F_MAINForm.vb
+++ b/VECTO/GUI/F_MAINForm.vb
@@ -2,7 +2,6 @@
 
 Public Class F_MAINForm
 
-    Private AdvList As cFileListView
     Private GenList As cFileListView
     Private DriList As cFileListView
     Private BatchGenList As cFileListView
@@ -505,8 +504,6 @@ Public Class F_MAINForm
         'FileLists
         GenList = New cFileListView(MyConfPath & "joblist.txt")
         GenList.LVbox = Me.LvGEN
-        AdvList = New cFileListView(MyConfPath & "ADVlist.txt")
-        AdvList.LVbox = Me.LvGEN
         DriList = New cFileListView(MyConfPath & "cyclelist.txt")
         DriList.LVbox = Me.LvDRI
         BatchGenList = New cFileListView(MyConfPath & "joblist.txt")
@@ -912,14 +909,6 @@ Public Class F_MAINForm
         pDim = UBound(Path)
         ReDim fList(0)     'um Nullverweisausnahme-Warnung zu verhindern
 
-        'Mode-switch if necessary
-        Select Case UCase(fEXT(Path(0)))
-            Case ".GEN"
-                If (LastModeIndex = 2) Then Me.CBoxMODE.SelectedIndex = 0
-            Case ".ADV"
-                If (LastModeIndex <> 2) Then Me.CBoxMODE.SelectedIndex = 2
-        End Select
-
         '******************************************* Begin Update '*******************************************
         Me.LvGEN.BeginUpdate()
         CheckLock = True
@@ -1476,8 +1465,6 @@ lbFound:
                     GenList.LoadList()
                 Case 1
                     BatchGenList.LoadList()
-                Case 2
-                    AdvList.LoadList()
             End Select
             GENchecked = Me.LvGEN.CheckedItems.Count
             UpdateGENTabText()
@@ -1554,8 +1541,6 @@ lbFound:
             Case 1  'Batch
                 BatchGenList.SaveList()
                 DriList.SaveList()
-            Case 2  'Advance
-                AdvList.SaveList()
         End Select
 
         LastModeIndex = Me.CBoxMODE.SelectedIndex
@@ -1601,20 +1586,7 @@ lbFound:
                     Me.TabControl1.TabPages.Insert(1, DRIpage)
                     DRIpageHere = True
                 End If
-            Case 2  'Advance
-                LastModeName = "ADVANCE"
-                AdvList.LoadList()
-
-                'Me.GrBoxADV.BringToFront()
-
-                Me.GrBoxSTD.Visible = False
-                Me.GrBoxBATCH.Visible = False
-                Me.GrBoxADV.Visible = True
 
-                If DRIpageHere Then
-                    Me.TabControl1.Controls.Remove(DRIpage)
-                    DRIpageHere = False
-                End If
         End Select
 
         GENchecked = Me.LvGEN.CheckedItems.Count
@@ -1793,8 +1765,6 @@ lbFound:
             Case 1
                 BatchGenList.SaveList()
                 DriList.SaveList()
-            Case 2
-                AdvList.SaveList()
         End Select
     End Sub
 
@@ -2119,11 +2089,9 @@ lbFound:
         End Select
 
         If Link <> "" Then
-
-            lv0.ForeColor = Color.Blue
+            If Not ID = tMsgID.Err Then lv0.ForeColor = Color.Blue
             lv0.SubItems(0).Font = New Font(Me.LvMsg.Font, FontStyle.Underline)
             lv0.Tag = Link
-
         End If
 
 
diff --git a/VECTO/Input Files/cVEH.vb b/VECTO/Input Files/cVEH.vb
index 29f38b372e9fa6fc917bc3d211deb0d12d2bd205..1f6313fd43d4dcfb824f737e4ac42ff21efbeab4 100644
--- a/VECTO/Input Files/cVEH.vb	
+++ b/VECTO/Input Files/cVEH.vb	
@@ -45,7 +45,6 @@ Public Class cVEH
     Private MyGBmaps As List(Of cDelaunayMap)
     Public GetrEffDef As List(Of Boolean)
     Public GetrEff As List(Of Single)
-    Public IsTCgear As List(Of Boolean)
 
     Private iganganz As Short
 
@@ -147,7 +146,6 @@ Public Class cVEH
         GetrEffDef = New List(Of Boolean)
         GetrEff = New List(Of Single)
         GetrMap = New List(Of cSubPath)
-        IsTCgear = New List(Of Boolean)
 
         MyGBmaps = Nothing
         iganganz = 0
@@ -653,6 +651,17 @@ lbError:
 
         RRC = 0
         For Each sl In RRCs
+
+            If sl(2) < -0.000001 Then
+                WorkerMsg(tMsgID.Err, "Invalid RRC value! (" & sl(2) & ")", MsgSrc, "<GUI>" & sFilePath)
+                Return False
+            End If
+
+            If sl(3) < 0.00001 Then
+                WorkerMsg(tMsgID.Err, "Invalid FzISO value! (" & sl(3) & ")", MsgSrc, "<GUI>" & sFilePath)
+                Return False
+            End If
+
             If CBool(sl(1)) Then
                 nrwheels = 4
             Else
@@ -693,6 +702,9 @@ lbError:
         Dim EffDiffSum As Single = 0
         Dim AnzDiff As Integer = 0
 
+        Dim MinG As Single
+        Dim plossG As Single
+
         Dim MsgSrc As String
 
         MyGBmaps = New List(Of cDelaunayMap)
@@ -774,51 +786,71 @@ lbError:
                 'Calculate average efficiency for fast approx. calculation
                 If i > 0 Then
 
-                    EffSum = 0
-                    Anz = 0
+                    If GBX.IsTCgear(i) Then
 
-                    dnU = (2 / 3) * (VEH.nNenn - VEH.nLeerl) / 10
-                    nU = VEH.nLeerl + dnU
+                        GetrEff(i) = -1
 
-                    Do While nU <= nNenn
-                        nn = (nU - VEH.nLeerl) / (VEH.nNenn - VEH.nLeerl)
+                    Else
 
-                        dM = nPeToM(nU, (2 / 3) * FLD(i).Pfull(nn) / 10)
-                        M_in = nPeToM(nU, (1 / 3) * FLD(i).Pfull(nn))
+                        EffSum = 0
+                        Anz = 0
 
-                        Do While M_in <= nPeToM(nU, FLD(i).Pfull(nn))
+                        dnU = (2 / 3) * (VEH.nNenn - VEH.nLeerl) / 10
+                        nU = VEH.nLeerl + dnU
 
-                            P_In = nMtoPe(nU, M_in)
+                        Do While nU <= nNenn
+                            nn = (nU - VEH.nLeerl) / (VEH.nNenn - VEH.nLeerl)
 
-                            P_Loss = IntpolPeLossFwd(i, nU, P_In, False)
+                            dM = nPeToM(nU, (2 / 3) * FLD(i).Pfull(nn) / 10)
+                            M_in = nPeToM(nU, (1 / 3) * FLD(i).Pfull(nn))
 
-                            EffSum += (P_In - P_Loss) / P_In
-                            Anz += 1
+                            Do While M_in <= nPeToM(nU, FLD(i).Pfull(nn))
 
-                            'Axle
-                            P_In -= P_Loss
-                            P_Loss = IntpolPeLossFwd(0, nU / VEH.Igetr(i), P_In, False)
-                            EffDiffSum += (P_In - P_Loss) / P_In
-                            AnzDiff += 1
+                                P_In = nMtoPe(nU, M_in)
 
-                            M_in += dM
-                        Loop
+                                P_Loss = IntpolPeLossFwd(i, nU, P_In, False)
 
+                                EffSum += (P_In - P_Loss) / P_In
+                                Anz += 1
 
-                        nU += dnU
-                    Loop
 
-                    If MODdata.ModErrors.TrLossMapExtr <> "" Then
-                        WorkerMsg(tMsgID.Err, "Transmission loss map does not cover full engine range! File: " & path, MsgSrc, path)
-                        Return False
-                    End If
+                                plossG = P_Loss
+                                MinG = M_in
+
+
+                                'Axle
+                                P_In -= P_Loss
+                                P_Loss = IntpolPeLossFwd(0, nU / VEH.Igetr(i), P_In, False)
+                                EffDiffSum += (P_In - P_Loss) / P_In
+                                AnzDiff += 1
+
+                                If MODdata.ModErrors.TrLossMapExtr <> "" Then
+                                    WorkerMsg(tMsgID.Err, "Transmission loss map does not cover full engine operating range!", MsgSrc)
+                                    WorkerMsg(tMsgID.Err, MODdata.ModErrors.TrLossMapExtr, MsgSrc)
+                                    WorkerMsg(tMsgID.Err, "nU_In(GB)=" & nU & " [1/min]", MsgSrc)
+                                    WorkerMsg(tMsgID.Err, "M_In(GB)=" & MinG & " [Nm]", MsgSrc)
+                                    WorkerMsg(tMsgID.Err, "P_Loss(GB)=" & plossG & " [kW]", MsgSrc)
+                                    WorkerMsg(tMsgID.Err, "nU_In(axle)=" & CStr(nU / VEH.Igetr(i)) & " [1/min]", MsgSrc)
+                                    WorkerMsg(tMsgID.Err, "M_In(axle)=" & CStr(nPeToM(nU / VEH.Igetr(i), P_In)) & " [Nm]", MsgSrc)
+                                    WorkerMsg(tMsgID.Err, "P_Loss(axle)=" & P_Loss & " [kW]", MsgSrc)
+                                    Return False
+                                End If
+
+                                M_in += dM
+                            Loop
 
-                    If Anz = 0 Then
-                        WorkerMsg(tMsgID.Err, "Failed to calculate approx. transmission losses!", MsgSrc)
-                        Return False
-                    End If
 
-                    GetrEff(i) = EffSum / Anz
+                            nU += dnU
+                        Loop
+
+                        If Anz = 0 Then
+                            WorkerMsg(tMsgID.Err, "Failed to calculate approx. transmission losses!", MsgSrc)
+                            Return False
+                        End If
+
+                        GetrEff(i) = EffSum / Anz
+
+                    End If
 
                 End If
 
@@ -858,7 +890,7 @@ lbError:
             GrTxt = Gear.ToString
         End If
 
-        If GetrEffDef(Gear) Or (Approx And DEV.AllowAprxTrLoss) Then
+        If GetrEffDef(Gear) Or (Approx And DEV.AllowAprxTrLoss AndAlso GetrEff(Gear) > 0) Then
 
             If PeOut > 0 Then
                 PeIn = PeOut / GetrEff(Gear)
@@ -964,7 +996,7 @@ lbError:
             GrTxt = Gear.ToString
         End If
 
-        If GetrEffDef(Gear) Or (Approx And DEV.AllowAprxTrLoss) Then
+        If GetrEffDef(Gear) Or (Approx And DEV.AllowAprxTrLoss AndAlso GetrEff(Gear) > 0) Then
 
             If PeIn > 0 Then
                 PeOut = PeIn * GetrEff(Gear)
diff --git a/VECTO/MODcalc/cPower.vb b/VECTO/MODcalc/cPower.vb
index 7c79cec271e32a0f499cb34b96fb12a7b5e06f3e..f81ddb6c66dee7bec027ffc4eb41b183b9befa19 100644
--- a/VECTO/MODcalc/cPower.vb
+++ b/VECTO/MODcalc/cPower.vb
@@ -458,18 +458,30 @@ Public Class cPower
                     End If
                 Next
 
+                'Calc Coasting-Start time step
                 If GEN.LookAheadOn Then
                     Tlookahead = CInt((vset2 - vset1) / GEN.a_lookahead)
                     t = Math.Max(0, i - Tlookahead)
                 End If
 
+                'Check if target-speed change inside of Coasting Phase
+                For i0 = i To t Step -1
+                    If i0 = 0 Then Exit For
+                    If Vh.Vsoll(i0) - Vh.Vsoll(i0 - 1) > 0.0001 Then
+                        t = Math.Min(i0 + 1, i)
+                        Exit For
+                    End If
+                Next
+
                 LookAheadDone = False
 
+                'Limit deceleration
                 adec = GEN.aDesMin(Vist)
                 If Vh.a(i) < adec Then Vh.SetMinAccBackw(i)
 
                 i0 = i
 
+                'If vehicle stops too early reduce coasting time, i.e. set  Coasting-Start later
                 If GEN.LookAheadOn Then
                     Do While i0 > t AndAlso fCoastingSpeed(t, Gears(t), i0 - t) < Vh.V(i0)
                         t += 1
@@ -1875,7 +1887,9 @@ lb_nOK:
         Dim OutOfRpmRange As Boolean
 
         'First time step OR first time step after stand still
-        If t = 0 OrElse MODdata.VehState(t - 1) = tVehState.Stopped Then Return 1
+        If t = 0 Then Return fStartGear(0)
+
+        If MODdata.VehState(t - 1) = tVehState.Stopped Then Return 1
 
         'Previous Gear
         tx = 1
diff --git a/VECTO/VECTO_Global.vb b/VECTO/VECTO_Global.vb
index b889d23c335e5af9bfdbf826d1eeee072d498fb9..256f4a59b98f3b9dde6650b4953cfd969fb017de 100644
--- a/VECTO/VECTO_Global.vb
+++ b/VECTO/VECTO_Global.vb
@@ -2,7 +2,7 @@
 
 Module VECTO_Global
 
-    Public Const VECTOvers As String = "1.4.RC4"
+    Public Const VECTOvers As String = "1.4.RC4 test3"
     Public Const LicSigAppCode As String = "VECTO-Release-0093C61E0A2E4BFA9A7ED7E729C56AE4"
     Public MyAppPath As String
     Public MyConfPath As String