diff --git a/dune/elasticity/materials/geomexactstvenantkirchhoffmaterial.hh b/dune/elasticity/materials/geomexactstvenantkirchhoffmaterial.hh
index 23dced8698a654ba4a73ea2698900877b3a0715e..de933faad94093db8cd6b22c08cd67657233f495 100644
--- a/dune/elasticity/materials/geomexactstvenantkirchhoffmaterial.hh
+++ b/dune/elasticity/materials/geomexactstvenantkirchhoffmaterial.hh
@@ -36,6 +36,10 @@ private:
     typedef typename GridType::template Codim<0>::LeafIterator ElementIterator; 
 
 public:
+    GeomExactStVenantMaterial() :
+        E_(1.0),
+        nu_(0.3)
+    {}
 
     GeomExactStVenantMaterial(const Basis& basis, ctype E, ctype nu) :
         localLinearization_(E,nu),
@@ -45,6 +49,20 @@ public:
         nu_(nu)
     {}
 
+    void setup(ctype E, ctype nu)
+    {
+        E_ = E; 
+        nu_ = nu;
+        if (localLinearization_)
+            localLinearization_.reset();       
+        if (localHessian_)
+            localHessian_.reset();       
+        
+        localLinearization_ = Dune::shared_ptr<LocalLinearization>(new LocalLinearization(E,nu));
+        localHessian_ = Dune::shared_ptr<LocalHessian>(new LocalHessian(E,nu));
+ 
+    }
+
     //! Evaluate the strain energy
     template <class CoeffType>
     ctype energy(const CoeffType& coeff)
@@ -100,20 +118,20 @@ public:
     }
    
     //! Return the local assembler of the first derivative of the strain energy 
-    LocalLinearization& firstDerivative() {return localLinearization_;}
+    LocalLinearization& firstDerivative() {return *localLinearization_;}
 
     //! Return the local assembler of the second derivative of the strain energy 
-    LocalHessian& secondDerivative() {return localHessian_;}
+    LocalHessian& secondDerivative() {return *localHessian_;}
 
     //! Return the global basis
     const Basis& basis() {return basis_;}
 
 private:
     //! First derivative of the strain energy
-    LocalLinearization localLinearization_;
+    Dune::shared_ptr<LocalLinearization> localLinearization_;
 
     //! Second derivative of the strain energy
-    LocalHessian localHessian_;
+    Dune::shared_ptr<LocalHessian> localHessian_;
 
     //! Global basis used for the spatial discretization
     const Basis& basis_;