diff --git a/dune/gfe/coupling/rodcontinuumsteklovpoincarestep.hh b/dune/gfe/coupling/rodcontinuumsteklovpoincarestep.hh
index 62c723075298278bf88d203514c010b947473f56..1b2be7d4d4f09b611a72c685e8075ea2a93898bb 100644
--- a/dune/gfe/coupling/rodcontinuumsteklovpoincarestep.hh
+++ b/dune/gfe/coupling/rodcontinuumsteklovpoincarestep.hh
@@ -51,7 +51,7 @@ public:
     /** \brief Constructor for a complex with one rod and one continuum */
     RodContinuumSteklovPoincareStep(const RodContinuumComplex<RodGridType,ContinuumGridType>& complex,
                                     const std::string& preconditioner,
-                                    const Dune::array<double,2>& alpha,
+                                    const std::array<double,2>& alpha,
                                     double richardsonDamping,
                                     RodAssembler<typename RodGridType::LeafGridView,3>* rodAssembler,
                                     RodLocalStiffness<typename RodGridType::LeafGridView,double>* rodLocalStiffness,
@@ -83,7 +83,7 @@ public:
     /** \brief Constructor for a general complex */
     RodContinuumSteklovPoincareStep(const RodContinuumComplex<RodGridType,ContinuumGridType>& complex,
                                     const std::string& preconditioner,
-                                    const Dune::array<double,2>& alpha,
+                                    const std::array<double,2>& alpha,
                                     double richardsonDamping,
                                     const std::map<std::string,RodAssembler<typename RodGridType::LeafGridView,3>*>& rodAssembler,
                                     const std::map<std::string,RodLocalStiffness<typename RodGridType::LeafGridView,double>*>& rodLocalStiffness,
@@ -195,7 +195,7 @@ protected:
     std::string preconditioner_;
     
     /** \brief Neumann-Neumann damping */
-    Dune::array<double,2> alpha_;
+    std::array<double,2> alpha_;
 
     /** \brief Damping factor for the Richardson iteration */
     double richardsonDamping_;
diff --git a/dune/gfe/hyperbolichalfspacepoint.hh b/dune/gfe/hyperbolichalfspacepoint.hh
index 7d0f5a92d56ec10e6ac03eb385f36de338da19b9..0077fb5eb9c57052035b2bebff524fe6cc08680b 100644
--- a/dune/gfe/hyperbolichalfspacepoint.hh
+++ b/dune/gfe/hyperbolichalfspacepoint.hh
@@ -197,7 +197,7 @@ public:
     }
     
     /** \brief Constructor from an array.  The array gets normalized */
-    HyperbolicHalfspacePoint(const Dune::array<T,N>& vector)
+    HyperbolicHalfspacePoint(const std::array<T,N>& vector)
     {
         assert(vector.back()>0);
         for (int i=0; i<N; i++)
diff --git a/dune/gfe/localgfetestfunctionbasis.hh b/dune/gfe/localgfetestfunctionbasis.hh
index cf5707fa067605ba21d2c11fd12269011f18e1fa..d6a257cbfc39c60a00cdfd5f1e6b245fae2f06ff 100644
--- a/dune/gfe/localgfetestfunctionbasis.hh
+++ b/dune/gfe/localgfetestfunctionbasis.hh
@@ -108,8 +108,8 @@ class LocalGfeTestFunctionBasis
 public :
     //! The local basis traits
     typedef Dune::LocalBasisTraits<ctype, dim, Dune::FieldVector<ctype,dim>, 
-        typename EmbeddedTangentVector::value_type, embeddedDim, Dune::array<EmbeddedTangentVector,spaceDim>, 
-        Dune::array<Dune::FieldMatrix<ctype, embeddedDim, dim>,spaceDim>,1> Traits;
+        typename EmbeddedTangentVector::value_type, embeddedDim, std::array<EmbeddedTangentVector,spaceDim>, 
+        std::array<Dune::FieldMatrix<ctype, embeddedDim, dim>,spaceDim>,1> Traits;
        
     /** \brief Constructor 
      */
diff --git a/dune/gfe/rodlocalstiffness.hh b/dune/gfe/rodlocalstiffness.hh
index b3000889a35c26e699cf54ce500a5ded897ea316..ad5133b825e8771ae18000254e53122e99525d79 100644
--- a/dune/gfe/rodlocalstiffness.hh
+++ b/dune/gfe/rodlocalstiffness.hh
@@ -52,14 +52,14 @@ public:
     // /////////////////////////////////
 
     /** \brief Material constants */
-    Dune::array<double,3> K_;
-    Dune::array<double,3> A_;
+    std::array<double,3> K_;
+    std::array<double,3> A_;
 
     GridView gridView_;
 
     //! Constructor
     RodLocalStiffness (const GridView& gridView,
-                       const Dune::array<double,3>& K, const Dune::array<double,3>& A)
+                       const std::array<double,3>& K, const std::array<double,3>& A)
         : gridView_(gridView)
     {
         for (int i=0; i<3; i++) {
@@ -98,14 +98,14 @@ public:
 
     /** \brief Local element energy for a P1 element */
     virtual RT energy (const Entity& e,
-                       const Dune::array<RigidBodyMotion<RT,3>, dim+1>& localSolution) const;
+                       const std::array<RigidBodyMotion<RT,3>, dim+1>& localSolution) const;
 
     virtual RT energy (const Entity& e,
                        const typename Dune::Functions::PQkNodalBasis<GridView,1>::LocalView::Tree::FiniteElement& localFiniteElement,
                        const std::vector<RigidBodyMotion<RT,3> >& localSolution) const
     {
         assert(localSolution.size()==2);
-        Dune::array<RigidBodyMotion<RT,3>, 2> localSolutionArray = {localSolution[0], localSolution[1]};
+        std::array<RigidBodyMotion<RT,3>, 2> localSolutionArray = {localSolution[0], localSolution[1]};
         return energy(e,localSolutionArray);
     }
 
@@ -132,10 +132,10 @@ protected:
 
 public:
     static void interpolationDerivative(const Rotation<RT,3>& q0, const Rotation<RT,3>& q1, double s,
-                                        Dune::array<Quaternion<double>,6>& grad);
+                                        std::array<Quaternion<double>,6>& grad);
 
     static void interpolationVelocityDerivative(const Rotation<RT,3>& q0, const Rotation<RT,3>& q1, double s,
-                                                double intervalLength, Dune::array<Quaternion<double>,6>& grad);
+                                                double intervalLength, std::array<Quaternion<double>,6>& grad);
 
 protected:
     template <class T>
@@ -155,7 +155,7 @@ protected:
 template <class GridType, class RT>
 RT RodLocalStiffness<GridType, RT>::
 energy(const Entity& element,
-       const Dune::array<RigidBodyMotion<RT,3>, dim+1>& localSolution
+       const std::array<RigidBodyMotion<RT,3>, dim+1>& localSolution
        ) const
 {
     RT energy = 0;
@@ -223,7 +223,7 @@ energy(const Entity& element,
 template <class GridType, class RT>
 void RodLocalStiffness<GridType, RT>::
 interpolationDerivative(const Rotation<RT,3>& q0, const Rotation<RT,3>& q1, double s,
-                        Dune::array<Quaternion<double>,6>& grad)
+                        std::array<Quaternion<double>,6>& grad)
 {
     // Clear output array
     for (int i=0; i<6; i++)
@@ -308,7 +308,7 @@ interpolationDerivative(const Rotation<RT,3>& q0, const Rotation<RT,3>& q1, doub
 template <class GridType, class RT>
 void RodLocalStiffness<GridType, RT>::
 interpolationVelocityDerivative(const Rotation<RT,3>& q0, const Rotation<RT,3>& q1, double s,
-                                double intervalLength, Dune::array<Quaternion<double>,6>& grad)
+                                double intervalLength, std::array<Quaternion<double>,6>& grad)
 {
     // Clear output array
     for (int i=0; i<6; i++)
@@ -325,7 +325,7 @@ interpolationVelocityDerivative(const Rotation<RT,3>& q0, const Rotation<RT,3>&
 
     Dune::FieldMatrix<RT,4,3> dExp_v = Rotation<RT,3>::Dexp(SkewMatrix<RT,3>(v));
 
-    Dune::array<Dune::FieldMatrix<RT,3,3>, 4> ddExp;
+    std::array<Dune::FieldMatrix<RT,3,3>, 4> ddExp;
     Rotation<RT,3>::DDexp(v, ddExp);
 
     Dune::FieldMatrix<RT,3,4> dExpInv = Rotation<RT,3>::DexpInv(q0Inv.mult(q1));
diff --git a/dune/gfe/rotation.hh b/dune/gfe/rotation.hh
index f5ebf1bf6139f1376e5b995090fc99e6118e4f9e..6684ee404e4a3fe13ea55f9ffd15c739516ada8b 100644
--- a/dune/gfe/rotation.hh
+++ b/dune/gfe/rotation.hh
@@ -193,7 +193,7 @@ public:
         : Quaternion<T>(0,0,0,1)
     {}
 
-    explicit Rotation<T,3>(const Dune::array<T,4>& c)
+    explicit Rotation<T,3>(const std::array<T,4>& c)
     {
         for (int i=0; i<4; i++)
             (*this)[i] = c[i];
@@ -406,7 +406,7 @@ public:
     }
 
     static void DDexp(const Dune::FieldVector<T,3>& v,
-                      Dune::array<Dune::FieldMatrix<T,3,3>, 4>& result) {
+                      std::array<Dune::FieldMatrix<T,3,3>, 4>& result) {
 
         T norm = v.two_norm();
         if (norm<=1e-10) {
@@ -651,7 +651,7 @@ public:
      * Then the return value of this method is
      * \f[ A_{ijkl} = \frac{\partial^2 d_{i,j}}{\partial q_k \partial q_l} \f]
      */
-    static void getSecondDerivativesOfDirectors(Dune::array<Tensor3<T,3, 4, 4>, 3>& dd_dq_dq)
+    static void getSecondDerivativesOfDirectors(std::array<Tensor3<T,3, 4, 4>, 3>& dd_dq_dq)
     {
         for (int i=0; i<3; i++)
             dd_dq_dq[i] = T(0);
diff --git a/dune/gfe/tensor3.hh b/dune/gfe/tensor3.hh
index c99b473c630de0593183e4ad1bfbeb96a970487f..4c0db93475db902afd9dd600f95c298f6335ed24 100644
--- a/dune/gfe/tensor3.hh
+++ b/dune/gfe/tensor3.hh
@@ -12,7 +12,7 @@
 */
 template <class T, int N1, int N2, int N3>
 class Tensor3
-    : public Dune::array<Dune::FieldMatrix<T,N2,N3>,N1>
+    : public std::array<Dune::FieldMatrix<T,N2,N3>,N1>
 {
     public:
 
diff --git a/dune/gfe/tensorssd.hh b/dune/gfe/tensorssd.hh
index 5064611bf9fd4b3c479cfb070dad8979dbb618bd..a1f1fe7249471c58124d93e39c0b3befea0a108d 100644
--- a/dune/gfe/tensorssd.hh
+++ b/dune/gfe/tensorssd.hh
@@ -104,7 +104,7 @@ public:
 private:
 
     // having the dynamic data type on the inside is kind of a stupid data layout
-    Dune::array<Dune::array<std::vector<T>, N2>, N1> data_;
+    std::array<std::array<std::vector<T>, N2>, N1> data_;
     
     // size of the third dimension
     size_t N3_;
@@ -126,4 +126,4 @@ inline std::ostream& operator<< (std::ostream& s, const TensorSSD<T,N1,N2>& tens
 }
 
 
-#endif
\ No newline at end of file
+#endif
diff --git a/dune/gfe/unitvector.hh b/dune/gfe/unitvector.hh
index 298d613f6050b04a32fcb92f9613bb20642c2c9d..6621a674eea7a527377db95447eebba1fac95479 100644
--- a/dune/gfe/unitvector.hh
+++ b/dune/gfe/unitvector.hh
@@ -101,7 +101,7 @@ public:
     }
 
     /** \brief Constructor from an array.  The array gets normalized! */
-    UnitVector(const Dune::array<T,N>& vector)
+    UnitVector(const std::array<T,N>& vector)
     {
         for (int i=0; i<N; i++)
             data_[i] = vector[i];