diff --git a/dune/tectonic/samplefunctional.hh b/dune/tectonic/samplefunctional.hh
index 359c4e2342fd378211f3e9c3d82ac2d00a0aacd7..f5de28a3311d9d2b60932987df095cce11f15f48 100644
--- a/dune/tectonic/samplefunctional.hh
+++ b/dune/tectonic/samplefunctional.hh
@@ -155,6 +155,8 @@ void minimise(Functional const J, typename Functional::SmallVector &x,
     if (descDir == SmallVector(0.0))
       return;
 
+    typedef typename Functional::NonlinearityType LocalNonlinearityType;
+    LocalNonlinearityType phi = J.phi;
     if (linesearchp) {
       // {{{ Construct a restriction of J to the line x + t * descDir
 
@@ -174,8 +176,6 @@ void minimise(Functional const J, typename Functional::SmallVector &x,
       J.A.mmv(x, tmp);                     //  b-Au
       double const JRestb = tmp * descDir; // <b-Au,v>
 
-      typedef typename Functional::NonlinearityType LocalNonlinearityType;
-      LocalNonlinearityType phi = J.phi;
       typedef DirectionalConvexFunction<LocalNonlinearityType>
       MyDirectionalConvexFunctionType;
       // FIXME: We cannot pass J.phi directly because the constructor
@@ -218,8 +218,6 @@ void minimise(Functional const J, typename Functional::SmallVector &x,
       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);