diff --git a/dune/tectonic/ellipticenergy.hh b/dune/tectonic/ellipticenergy.hh
index 6ac8fef6cfb6147e5f0d8a0a981bc4c8e1bf8676..36d5ec3cc05459b9f4edc4466f8ccd310b4a9ecc 100644
--- a/dune/tectonic/ellipticenergy.hh
+++ b/dune/tectonic/ellipticenergy.hh
@@ -32,21 +32,8 @@ template <int dim> class EllipticEnergy {
   void descentAtZero(SmallVector &ret) const {
     SmallVector const zero(0);
     // If there is a direction of descent, this is it
-    SmallVector d;
-    smoothGradient(zero, d);
-    d *= -1;
-
-    Interval<double> D;
-    phi->directionalSubDiff(zero, d, D);
-    double const nonlinearDecline = D[1];
-    double const smoothDecline = -(d * d);
-    double const combinedDecline = smoothDecline + nonlinearDecline;
-
-    if (combinedDecline < 0) {
-      ret = d;
-    } else {
-      ret = 0;
-    }
+    smoothGradient(zero, ret);
+    ret *= -1;
   }
 
   bool descentDirection(SmallVector const &x, SmallVector &ret) const {