diff --git a/dune/tectonic/samplefunctional.hh b/dune/tectonic/samplefunctional.hh
index 6ca943e90d19268dad6516ebc8aa731c9bb831ec..859c51755a7576b0fd9313d3bcdefe4f5c4e0356 100644
--- a/dune/tectonic/samplefunctional.hh
+++ b/dune/tectonic/samplefunctional.hh
@@ -142,7 +142,7 @@ void minimise(Functional const J, typename Functional::SmallVector &x,
                                  // become smaller than this number
                             1.0, // acceptFactor: ?
                             1e-12, // requiredResidual: ?
-                            false, // fastQuadratic
+                            true,  // fastQuadratic
                             0))    // safety: acceptance factor for inexact
                                    // minimization
 {
@@ -215,13 +215,16 @@ void minimise(Functional const J, typename Functional::SmallVector &x,
 
       x.axpy(stepsize, descDir);
     } else {
+      Bisection slowBisection(bisection);
+      slowBisection.setFastQuadratic(false);
+
       typedef typename Functional::NonlinearityType LocalNonlinearityType;
       LocalNonlinearityType phi = J.phi;
       typedef Dune::CurvedFunction<LocalNonlinearityType> MyCurvedFunctionType;
       MyCurvedFunctionType JRest(J.A, J.b, phi, x, descDir);
 
       int count;
-      double const stepsize = bisection.minimize(JRest, 0.0, 1.0, count);
+      double const stepsize = slowBisection.minimize(JRest, 0.0, 1.0, count);
       dverb << "Number of iterations in the bisection method: " << count
             << std::endl;
       ;