diff --git a/dune/gfe/mixedriemanniantrsolver.cc b/dune/gfe/mixedriemanniantrsolver.cc
index b334c8a4080b161aa4d723b6939b7c8e76bdda56..1fac797ab466f808fc556fe93dcfb1cd0d8c60ed 100644
--- a/dune/gfe/mixedriemanniantrsolver.cc
+++ b/dune/gfe/mixedriemanniantrsolver.cc
@@ -175,10 +175,10 @@ setup(const GridType& grid,
 
     // \todo Why are the hessianMatrix objects class members at all, and not local to 'solve'?
 
-    hessianMatrix00_ = std::auto_ptr<MatrixType00>(new MatrixType00);
-    hessianMatrix01_ = std::auto_ptr<MatrixType01>(new MatrixType01);
-    hessianMatrix10_ = std::auto_ptr<MatrixType10>(new MatrixType10);
-    hessianMatrix11_ = std::auto_ptr<MatrixType11>(new MatrixType11);
+    hessianMatrix00_ = std::unique_ptr<MatrixType00>(new MatrixType00);
+    hessianMatrix01_ = std::unique_ptr<MatrixType01>(new MatrixType01);
+    hessianMatrix10_ = std::unique_ptr<MatrixType10>(new MatrixType10);
+    hessianMatrix11_ = std::unique_ptr<MatrixType11>(new MatrixType11);
 
     // ////////////////////////////////////
     //   Create the transfer operators
diff --git a/dune/gfe/mixedriemanniantrsolver.hh b/dune/gfe/mixedriemanniantrsolver.hh
index 7e5acd784df9bfdc4b810cc0b3ec55ab2fb83209..7525f78251817c383dcd7c9c2378ee6ee1e6c5cf 100644
--- a/dune/gfe/mixedriemanniantrsolver.hh
+++ b/dune/gfe/mixedriemanniantrsolver.hh
@@ -125,10 +125,10 @@ protected:
     double innerTolerance_;
 
     /** \brief Hessian matrix */
-    std::auto_ptr<MatrixType00> hessianMatrix00_;
-    std::auto_ptr<MatrixType01> hessianMatrix01_;
-    std::auto_ptr<MatrixType10> hessianMatrix10_;
-    std::auto_ptr<MatrixType11> hessianMatrix11_;
+    std::unique_ptr<MatrixType00> hessianMatrix00_;
+    std::unique_ptr<MatrixType01> hessianMatrix01_;
+    std::unique_ptr<MatrixType10> hessianMatrix10_;
+    std::unique_ptr<MatrixType11> hessianMatrix11_;
 
     /** \brief The assembler for the material law */
     const MixedGFEAssembler<Basis0, TargetSpace0, Basis1, TargetSpace1>* assembler_;