diff --git a/dune/gfe/localgeodesicfestiffness.hh b/dune/gfe/localgeodesicfestiffness.hh
index 6faa0d7c0d41e79c93b276857efd21190fcf6aa7..fb918b1fec8c9edb8f6c910c9e5366ea4467353f 100644
--- a/dune/gfe/localgeodesicfestiffness.hh
+++ b/dune/gfe/localgeodesicfestiffness.hh
@@ -149,7 +149,8 @@ public:
     
     static void assembleGradient(const Entity& element,
                           const std::vector<TargetSpace>& localSolution,
-                          std::vector<typename TargetSpace::TangentVector>& localGradient)
+                          std::vector<typename TargetSpace::TangentVector>& localGradient,
+                                 const LocalGeodesicFEStiffness<GridView,TargetSpace>* energyObject)
     {
         // ///////////////////////////////////////////////////////////
         //   Compute gradient by finite-difference approximation
@@ -169,7 +170,7 @@ public:
                 infinitesimalVariation(forwardSolution[i],   eps, j);
                 infinitesimalVariation(backwardSolution[i], -eps, j);
             
-                localGradient[i][j] = (energy(element,forwardSolution) - energy(element,backwardSolution))
+                localGradient[i][j] = (energyObject->energy(element,forwardSolution) - energyObject->energy(element,backwardSolution))
                     / (2*eps);
             
                 forwardSolution[i]  = localSolution[i];