diff --git a/dune/tectonic/minimisation.hh b/dune/tectonic/minimisation.hh
index 71edb09b22115375c13e9f6076d4767b2497f56c..5bf0888bf9aabc4be740e46f8ec14d5e4f54a44a 100644
--- a/dune/tectonic/minimisation.hh
+++ b/dune/tectonic/minimisation.hh
@@ -36,7 +36,7 @@ void minimise(Functional const &J, typename Functional::LocalVector &x,
     double const vnorm = v.two_norm();
     if (vnorm <= 0.0)
       return;
-    v *= -1;
+    v /= -vnorm; // normalise for numerical stability; note the minus
 
     double const alpha = lineSearch(J, x, v, bisection);
     Arithmetic::addProduct(x, alpha, v);