diff --git a/src/rodassembler.cc b/src/rodassembler.cc
index 114af253d082021056afdccf9edf24c2205360ce..f177ae4b4e992b04a129e8b12f1d4af769008c07 100644
--- a/src/rodassembler.cc
+++ b/src/rodassembler.cc
@@ -154,7 +154,8 @@ assembleGradient(const std::vector<RigidBodyMotion<3> >& sol,
         // Assemble local gradient
         array<FieldVector<double,blocksize>, nDofs> localGradient;
 
-        localStiffness.assembleGradient(*it, localSolution, localReferenceConfiguration, localGradient);
+        localStiffness.localReferenceConfiguration_ = localReferenceConfiguration;
+        localStiffness.assembleGradient(*it, localSolution, localGradient);
 
         // Add to global gradient
         for (int i=0; i<nDofs; i++)
diff --git a/src/rodlocalstiffness.hh b/src/rodlocalstiffness.hh
index 8bab6c948f0ffe19db9f77edcf8141dc32a620cb..f254cc0145c1b5cc39cb41a8461c461c2e202843 100644
--- a/src/rodlocalstiffness.hh
+++ b/src/rodlocalstiffness.hh
@@ -91,7 +91,6 @@ public:
     /** \brief Assemble the element gradient of the energy functional */
     void assembleGradient(const Entity& element,
                           const std::vector<RigidBodyMotion<3> >& solution,
-                          const std::vector<RigidBodyMotion<3> >& referenceConfiguration,
                           Dune::array<Dune::FieldVector<double,6>, 2>& gradient) const;
     
     template <class T>
@@ -461,7 +460,6 @@ template <class GridType, class RT>
 void RodLocalStiffness<GridType, RT>::
 assembleGradient(const Entity& element,
                  const std::vector<RigidBodyMotion<3> >& solution,
-                 const std::vector<RigidBodyMotion<3> >& referenceConfiguration,
                  Dune::array<Dune::FieldVector<double,6>, 2>& gradient) const
 {
     using namespace Dune;
@@ -527,7 +525,7 @@ assembleGradient(const Entity& element,
         FieldVector<double,blocksize> strain = getStrain(solution, element, quadPos);
         
         // The reference strain
-        FieldVector<double,blocksize> referenceStrain = getStrain(referenceConfiguration, element, quadPos);
+        FieldVector<double,blocksize> referenceStrain = getStrain(localReferenceConfiguration_, element, quadPos);
         
         
         // dd_dvij[m][i][j] = \parder {(d_k)_i} {q}
@@ -603,7 +601,7 @@ assembleGradient(const Entity& element,
         FieldVector<double,blocksize> strain = getStrain(solution, element, quadPos);
         
         // The reference strain
-        FieldVector<double,blocksize> referenceStrain = getStrain(referenceConfiguration, element, quadPos);
+        FieldVector<double,blocksize> referenceStrain = getStrain(localReferenceConfiguration_, element, quadPos);
         
         // First derivatives of the position
         array<Quaternion<double>,6> dq_dwij;