diff --git a/dune/gfe/localgeodesicfefunction.hh b/dune/gfe/localgeodesicfefunction.hh
index b17e057bdd057beec152e45ff46674c023db58a8..8cff20deaedb0ae2d28f949a84ea09c6ccde28e6 100644
--- a/dune/gfe/localgeodesicfefunction.hh
+++ b/dune/gfe/localgeodesicfefunction.hh
@@ -618,7 +618,7 @@ public:
         for (size_t i=0; i<coefficients.size(); i++)
             orientationCoefficients[i] = coefficients[i].q;
 
-        orientationFEFunction_ = std::auto_ptr<LocalGeodesicFEFunction<dim,ctype,LocalFiniteElement,Rotation<field_type,3> > > (new LocalGeodesicFEFunction<dim,ctype,LocalFiniteElement,Rotation<field_type,3> >(localFiniteElement,orientationCoefficients));
+        orientationFEFunction_ = std::unique_ptr<LocalGeodesicFEFunction<dim,ctype,LocalFiniteElement,Rotation<field_type,3> > > (new LocalGeodesicFEFunction<dim,ctype,LocalFiniteElement,Rotation<field_type,3> >(localFiniteElement,orientationCoefficients));
 
     }
 
@@ -823,7 +823,7 @@ private:
 
     std::vector<Dune::FieldVector<field_type,3> > translationCoefficients_;
 
-    std::auto_ptr<LocalGeodesicFEFunction<dim,ctype,LocalFiniteElement,Rotation<field_type,3> > > orientationFEFunction_;
+    std::unique_ptr<LocalGeodesicFEFunction<dim,ctype,LocalFiniteElement,Rotation<field_type,3> > > orientationFEFunction_;
 };
 
 
diff --git a/dune/gfe/riemanniantrsolver.cc b/dune/gfe/riemanniantrsolver.cc
index 2681a9da9f893b1fd16eb1f737cae3c9993f9090..1702f0642d533b9bd12ebe6c4fd2135ceb8822d7 100644
--- a/dune/gfe/riemanniantrsolver.cc
+++ b/dune/gfe/riemanniantrsolver.cc
@@ -179,7 +179,7 @@ setup(const GridType& grid,
     //    Create Hessian matrix and its occupation structure
     // ////////////////////////////////////////////////////////////
 
-    hessianMatrix_ = std::auto_ptr<MatrixType>(new MatrixType);
+    hessianMatrix_ = std::unique_ptr<MatrixType>(new MatrixType);
     Dune::MatrixIndexSet indices(grid_->size(1), grid_->size(1));
     assembler_->getNeighborsPerVertex(indices);
     indices.exportIdx(*hessianMatrix_);
diff --git a/dune/gfe/riemanniantrsolver.hh b/dune/gfe/riemanniantrsolver.hh
index 87f27bc0bd5d44017a83e8945ba443602a2d3ea1..1f2b3aea11b58ab86fea772c4d78aa58f8934afe 100644
--- a/dune/gfe/riemanniantrsolver.hh
+++ b/dune/gfe/riemanniantrsolver.hh
@@ -80,7 +80,7 @@ public:
 
     RiemannianTrustRegionSolver()
         : IterativeSolver<std::vector<TargetSpace>, Dune::BitSetVector<blocksize> >(0,100,NumProc::FULL),
-          hessianMatrix_(std::auto_ptr<MatrixType>(NULL)), h1SemiNorm_(NULL)
+          hessianMatrix_(nullptr), h1SemiNorm_(NULL)
     {
       std::fill(scaling_.begin(), scaling_.end(), 1.0);
     }
@@ -155,7 +155,7 @@ protected:
     double innerTolerance_;
 
     /** \brief Hessian matrix */
-    std::auto_ptr<MatrixType> hessianMatrix_;
+    std::unique_ptr<MatrixType> hessianMatrix_;
 
     /** \brief The assembler for the material law */
     const GeodesicFEAssembler<Basis, TargetSpace>* assembler_;