diff --git a/User Manual Source/material User Manual.pptx b/User Manual Source/material User Manual.pptx
index 46a176a80e07c1a76fccda06583f1f866104d692..7088c1ef4f4ef5d6ef42ade774124732de77d53c 100644
Binary files a/User Manual Source/material User Manual.pptx and b/User Manual Source/material User Manual.pptx differ
diff --git a/User Manual/GUI/GBX-Editor.html b/User Manual/GUI/GBX-Editor.html
index 736966d456a694633af16998a132ddb9f7f0bfb2..a9d3dd423a3dd5f892340c3e60126fb7752932da 100644
--- a/User Manual/GUI/GBX-Editor.html	
+++ b/User Manual/GUI/GBX-Editor.html	
@@ -155,8 +155,8 @@ with "<span style="font-weight: bold;">c</span> "</span><br></div>
 <br>
 <div style="margin-left: 40px;"><span style="font-weight: bold;">*Input Speed &amp;
 Torque always
-means <span style="text-decoration: underline;">engine-side</span>. <span style="color: red;">The Torque Loss Map must include negative torque
-values for engine motoring operation!</span></span><br></div><br></div><br>
+means <span style="text-decoration: underline;">engine-side</span>.</span><br><br><span style="font-weight: bold;">Sign of torque values:</span><br><ul><li>Input Torque &gt; 0 for normal driving operation</li><li>Input Torque &lt; 0 for motoring operation.&nbsp;<span style="font-weight: bold;"><span style="color: red;">The Torque Loss Map must include negative torque
+values for engine motoring operation!</span></span></li><li>Torque Loss is always positive!</li></ul><span style="font-weight: bold;">Calculation of Output Torque (axle-side)</span>:<br><div style="margin-left: 40px;">VECTO calculates the output torque using the formula, independent from the current of operation mode.<br><img style="width: 600px; height: 39px;" alt="" src="pics/GBX-Editor_Tout.PNG"></div></div><br></div><br>
 <br>
 <big><big><span style="font-weight: bold;">Gear
 shift parameters</span></big></big><br>
@@ -308,8 +308,7 @@ The torque converter characteristics must also be defined for speed
 ratios of more than one (<span style="font-weight: bold;"></span>&#957;&gt;1)
 in order to calculate overrun conditions (torque&lt;0).<br>
 <br>
-<span style="font-weight: bold;">Torque Loss
-Map&nbsp;Format</span> (comma-separated, dot = decimal-mark):
+<span style="font-weight: bold;">Torque Converter </span><span style="font-weight: bold;">Characteristics File </span><span style="font-weight: bold;">Format</span> (comma-separated, dot = decimal-mark):
 <table style="background-color: white; text-align: left; height: 115px; width: 560px; margin-left: 0px;" border="1" cellpadding="2" cellspacing="1">
 <tbody>
 <tr>
diff --git a/User Manual/GUI/pics/GBX-Editor_Tout.PNG b/User Manual/GUI/pics/GBX-Editor_Tout.PNG
new file mode 100644
index 0000000000000000000000000000000000000000..4cc1d79ec0a474a421f80d2808780f783d927104
Binary files /dev/null and b/User Manual/GUI/pics/GBX-Editor_Tout.PNG differ
diff --git a/User Manual/fileformat/VSUM.html b/User Manual/fileformat/VSUM.html
index c752ac2fcb478a269b08372fe46b7ba2e627e63c..ffc1a09d7a84d2950cd9efe5aeb9c3455b3fa1b3 100644
--- a/User Manual/fileformat/VSUM.html	
+++ b/User Manual/fileformat/VSUM.html	
@@ -70,10 +70,9 @@ File</td>
 <td>Average vehicle speed</td>
 </tr>
 <tr style="height: 15pt;" height="20">
-<td style="height: 15pt;" height="20">road
-grad</td>
-<td>[%]</td>
-<td>Average road gradient (time-averaged)</td>
+<td style="height: 15pt;" height="20">&#8710;altitude</td>
+<td>[m]</td>
+<td>Altitude difference between start and end of cycle</td>
 </tr>
 <tr style="height: 15pt;" height="20">
 <td style="height: 15pt;" height="20">n_norm</td>
diff --git a/VECTO Changelog.txt b/VECTO Changelog.txt
index ac81b87f94c023fd28b0d893815b1284c4ac82d1..c2b38411e2fba47c675a0e9d060f8390c1eb4533 100644
--- a/VECTO Changelog.txt	
+++ b/VECTO Changelog.txt	
@@ -1,12 +1,12 @@
 VECTO ?.? (future release) TODO
-- User Manual:
+* User Manual:
 	JSON
-- Correct Pg (sin(arctan(Stg)) statt Stg) and Proll (cos) calculation (Road gradient)   
 
 
-VECTO 1.4.RC4 (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 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
+* Exact road gradient calculation (sin(arctan(grad)*m*g) instead of grad*m*g) and road gradient influence on roll resistance (cos(arctan(grad)*m*g instead of m*g)
 
 
 VECTO 1.4.RC4
@@ -84,8 +84,8 @@ VECTO 1.1 beta 3
 
 * FC Extrapolation will abort the calculation
 * Transmission Type selection in Gearbox (.vgbx) file.
-* Enables/Disables transmission type-specific options 
-* In Proof-Of-Concept mode "Custom" type is available with all options enabled.
+** Enables/Disables transmission type-specific options 
+** In Proof-Of-Concept mode "Custom" type is available with all options enabled.
 * Automatic Transmission mode with Torque Converter: Input parameters in Gearbox file !!still being tested!!
 * Option to open files with GRAPHi or user-defined tool
 * User Manual updated
diff --git a/VECTO/Input Files/cVEH.vb b/VECTO/Input Files/cVEH.vb
index 1f6313fd43d4dcfb824f737e4ac42ff21efbeab4..484417a607bc0422830ce4b0dc776f919b3423ab 100644
--- a/VECTO/Input Files/cVEH.vb	
+++ b/VECTO/Input Files/cVEH.vb	
@@ -753,9 +753,9 @@ lbError:
                     l += 1
                     line = file.ReadLine
                     Try
-                        'PHEM:    n, PeIn, PeOut => x=n, y=PeOut, z=PeIn |@@| PHEM:    n, PeIn, PeOut => x=n, y=PeOut, z=PeIn
-                        'PHEM: GBmap0.AddPoints(CDbl(line(0)) * n_norm, CDbl(line(2)) * Pe_norm, CDbl(line(1)) * Pe_norm) |@@| PHEM: GBmap0.AddPoints(CDbl(line(0)) * n_norm, CDbl(line(2)) * Pe_norm, CDbl(line(1)) * Pe_norm)
-                        'old version: VECTO: n, M_in, M_loss => x=n, y=PeOut, z=PeIn |@@| VECTO: n, M_in, M_loss => x=n, y=PeOut, z=PeIn
+                        'PHEM:    n, PeIn, PeOut => x=n, y=PeOut, z=PeIn
+                        'PHEM: GBmap0.AddPoints(CDbl(line(0)) * n_norm, CDbl(line(2)) * Pe_norm, CDbl(line(1)) * Pe_norm) 
+                        'old version: VECTO: n, M_in, M_loss => x=n, y=PeOut, z=PeIn 
                         'VECTO: n, M_in, M_loss => x=n, y=M_out, z=M_in
                         nU = CDbl(line(0))
                         M_in = CDbl(line(1))
diff --git a/VECTO/MODcalc/cPower.vb b/VECTO/MODcalc/cPower.vb
index f81ddb6c66dee7bec027ffc4eb41b183b9befa19..e5ffbe4cb23e8a31907686edcefb845da962c8c3 100644
--- a/VECTO/MODcalc/cPower.vb
+++ b/VECTO/MODcalc/cPower.vb
@@ -1318,7 +1318,7 @@ lb_nOK:
 
             MODdata.Pa.Add(fPaFZ(MODdata.Vh.V(jz), MODdata.Vh.a(jz)))
             MODdata.Pluft.Add(fPair(MODdata.Vh.V(jz), jz))
-            MODdata.Proll.Add(fPr(MODdata.Vh.V(jz)))
+            MODdata.Proll.Add(fPr(MODdata.Vh.V(jz), jz))
             MODdata.Pstg.Add(fPs(MODdata.Vh.V(jz), jz))
             MODdata.Pbrake.Add(Pbrake)
             MODdata.Psum.Add(PvorD)
@@ -1928,7 +1928,7 @@ lb_nOK:
 
         If nn > nnUp Then
 
-            If fnn(Vist, 2, False) > nnDown Then
+            If fnn(Vist, LastGear + 1, False) > nnDown Then
                 Return LastGear + 1
             Else
                 Return LastGear
@@ -2367,20 +2367,24 @@ lb_nOK:
 
     '--------------Power before Diff = At Wheel -------------
     Private Function fPvD(ByVal t As Integer) As Single
-        Return fPr(MODdata.Vh.V(t)) + fPair(MODdata.Vh.V(t), t) + fPaFZ(MODdata.Vh.V(t), MODdata.Vh.a(t)) + fPs(MODdata.Vh.V(t), t)
+        Return fPr(MODdata.Vh.V(t), t) + fPair(MODdata.Vh.V(t), t) + fPaFZ(MODdata.Vh.V(t), MODdata.Vh.a(t)) + fPs(MODdata.Vh.V(t), t)
     End Function
 
     Private Function fPvD(ByVal t As Integer, ByVal v As Single, ByVal a As Single) As Single
-        Return fPr(v) + fPair(v, t) + fPaFZ(v, a) + fPs(v, t)
+        Return fPr(v, t) + fPair(v, t) + fPaFZ(v, a) + fPs(v, t)
     End Function
 
     Private Function fPvD(ByVal t As Integer, ByVal v As Single, ByVal a As Single, ByVal Grad As Single) As Single
-        Return fPr(v) + fPair(v, t) + fPaFZ(v, a) + fPs(v, Grad)
+        Return fPr(v, Grad) + fPair(v, t) + fPaFZ(v, a) + fPs(v, Grad)
     End Function
 
     '----------------Rolling-resistance----------------
-    Private Function fPr(ByVal v As Single) As Single
-        Return CSng((VEH.Loading + VEH.Mass + VEH.MassExtra) * 9.81 * (VEH.Fr0 + VEH.Fr1 * v + VEH.Fr2 * v ^ 2 + VEH.Fr3 * v ^ 3 + VEH.Fr4 * v ^ 4) * v * 0.001)
+    Private Function fPr(ByVal v As Single, ByVal t As Integer) As Single
+        Return CSng(Math.Cos(Math.Atan(MODdata.Vh.Grad(t) * 0.01)) * (VEH.Loading + VEH.Mass + VEH.MassExtra) * 9.81 * (VEH.Fr0 + VEH.Fr1 * v + VEH.Fr2 * v ^ 2 + VEH.Fr3 * v ^ 3 + VEH.Fr4 * v ^ 4) * v * 0.001)
+    End Function
+
+    Private Function fPr(ByVal v As Single, ByVal Grad As Single) As Single
+        Return CSng(Math.Cos(Math.Atan(Grad * 0.01)) * (VEH.Loading + VEH.Mass + VEH.MassExtra) * 9.81 * (VEH.Fr0 + VEH.Fr1 * v + VEH.Fr2 * v ^ 2 + VEH.Fr3 * v ^ 3 + VEH.Fr4 * v ^ 4) * v * 0.001)
     End Function
 
     '----------------Drag-resistance----------------
@@ -2433,11 +2437,11 @@ lb_nOK:
 
     '----------------Slope resistance ----------------
     Private Function fPs(ByVal v As Single, ByVal t As Integer) As Single
-        Return CSng(((VEH.Loading + VEH.Mass + VEH.MassExtra) * 9.81 * MODdata.Vh.Grad(t) * 0.01 * v) * 0.001)
+        Return CSng(((VEH.Loading + VEH.Mass + VEH.MassExtra) * 9.81 * Math.Sin(Math.Atan(MODdata.Vh.Grad(t) * 0.01)) * v) * 0.001)
     End Function
 
     Private Function fPs(ByVal v As Single, ByVal Grad As Single) As Single
-        Return CSng(((VEH.Loading + VEH.Mass + VEH.MassExtra) * 9.81 * Grad * 0.01 * v) * 0.001)
+        Return CSng(((VEH.Loading + VEH.Mass + VEH.MassExtra) * 9.81 * Math.Sin(Math.Atan(Grad * 0.01)) * v) * 0.001)
     End Function
 
     '----------------Ancillaries(Nebenaggregate) ----------------