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/VECTO/Input Files/cGBX.vb b/VECTO/Input Files/cGBX.vb
index bf1c73f5c194de390da677288f2b566a21b74aad..6d22fcdacb0ef1b2edbb5788faebe749cb842224 100644
--- a/VECTO/Input Files/cGBX.vb	
+++ b/VECTO/Input Files/cGBX.vb	
@@ -469,6 +469,16 @@ Public Class cGBX
             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
@@ -507,7 +517,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
diff --git a/VECTO/MODcalc/cPower.vb b/VECTO/MODcalc/cPower.vb
index 963c0d5ab9ac488dbac313b8a2643fd77e0119b7..fcfe60e7a281fd66ad7b8a9c40a8f38c1a48ad82 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
@@ -79,7 +78,6 @@ Public Class cPower
         Dim dist As New List(Of Double)
         Dim LastnU As Single = 0
 
-
         Dim MsgSrc As String
 
 
@@ -133,6 +131,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,6 +171,7 @@ Public Class cPower
                 End If
             End If
 
+
             'Wheel-Power
             Pwheel = fPwheel(i, Vh.fGrad(dist(i)))
 
@@ -255,7 +255,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
 
@@ -481,11 +480,8 @@ Public Class cPower
         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
@@ -668,11 +664,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
 
@@ -887,7 +887,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
@@ -910,7 +913,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
 
@@ -1275,7 +1280,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
 
diff --git a/VECTO/MODcalc/cVh.vb b/VECTO/MODcalc/cVh.vb
index 75fd3db869fc09e8e0843bff85aecdf7a7b09209..ca257cd9ef4e611858121567667a1d1953bdf789 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/VECTO_Global.vb b/VECTO/VECTO_Global.vb
index 99c36582175bae52197fe3f69ecce1a0c715b2db..de18d5ca751ace9816a59002a3ed2ac986a8c74f 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"
+    Public Const VECTOvers As String = "2.0.4-beta2"
     Public Const LicSigAppCode As String = "VECTO-Release-0093C61E0A2E4BFA9A7ED7E729C56AE4"
     Public MyAppPath As String
     Public MyConfPath As String