diff --git a/dune/fufem/assemblers/localassemblers/geomexactstvenantkirchhofffunctionalassembler.hh b/dune/fufem/assemblers/localassemblers/geomexactstvenantkirchhofffunctionalassembler.hh
index 86d55ddd273cc8ce77ab46e4346aaa9e3b7d7170..977df4a9f8b29c89378d9622fc1002877dd07d50 100644
--- a/dune/fufem/assemblers/localassemblers/geomexactstvenantkirchhofffunctionalassembler.hh
+++ b/dune/fufem/assemblers/localassemblers/geomexactstvenantkirchhofffunctionalassembler.hh
@@ -3,6 +3,7 @@
 #ifndef DUNE_FUFEM_LOCAL_ASSEMBLERS_GEOMETRICALLY_EXACT_ST_VENANT_KIRCHHOFF_FUNCTIONAL_ASSEMBLER_HH
 #define DUNE_FUFEM_LOCAL_ASSEMBLERS_GEOMETRICALLY_EXACT_ST_VENANT_KIRCHHOFF_FUNCTIONAL_ASSEMBLER_HH
 
+#include <array>
 #include <memory>
 
 #include <dune/common/fvector.hh>
@@ -130,7 +131,7 @@ public:
                 localConfGrad[i][i] += 1;        
 
             //compute linearized strain for all shapefunctions
-            std::vector<Dune::array<SymmetricTensor<dim>,dim> > linStrain(rows);
+            std::vector<std::array<SymmetricTensor<dim>,dim> > linStrain(rows);
 
             for (int i=0; i<rows; i++)
                 for (int k=0; k<dim; k++) {
diff --git a/dune/fufem/assemblers/localassemblers/geomexactstvenantkirchhoffoperatorassembler.hh b/dune/fufem/assemblers/localassemblers/geomexactstvenantkirchhoffoperatorassembler.hh
index f9924c15f35c7620b3a2ed8cda43e85aafa9f817..f3c616e8ef09340e75b2757bbc48277b646700aa 100644
--- a/dune/fufem/assemblers/localassemblers/geomexactstvenantkirchhoffoperatorassembler.hh
+++ b/dune/fufem/assemblers/localassemblers/geomexactstvenantkirchhoffoperatorassembler.hh
@@ -3,6 +3,7 @@
 #ifndef DUNE_FUFEM_LOCAL_ASSEMBLERS_GEOMETRICALLY_EXACT_ST_VENANT_KIRCHHOFF_OPERATOR_ASSEMBLER_HH
 #define DUNE_FUFEM_LOCAL_ASSEMBLERS_GEOMETRICALLY_EXACT_ST_VENANT_KIRCHHOFF_OPERATOR_ASSEMBLER_HH
 
+#include <array>
 #include <memory>
 
 #include <dune/common/fvector.hh>
@@ -136,8 +137,8 @@ public:
             // /////////////////////////////////////////////
             //   Compute linearized strain for all shape functions
             // /////////////////////////////////////////////
-            std::vector<Dune::array<FMdimdim, dim > > defGrad(rows);
-            std::vector<Dune::array<SymmetricTensor<dim>,dim> > linStrain(rows);
+            std::vector<std::array<FMdimdim, dim > > defGrad(rows);
+            std::vector<std::array<SymmetricTensor<dim>,dim> > linStrain(rows);
 
             for (int i=0; i<rows; i++) {
 
diff --git a/dune/fufem/assemblers/localassemblers/strainproductassembler.hh b/dune/fufem/assemblers/localassemblers/strainproductassembler.hh
index 719a779be5a28cf1248523724a170534e6cbe725..a7beb576ea750978ca376d44673f84a2586a7b97 100644
--- a/dune/fufem/assemblers/localassemblers/strainproductassembler.hh
+++ b/dune/fufem/assemblers/localassemblers/strainproductassembler.hh
@@ -1,6 +1,8 @@
 #ifndef STRAIN_PRODUCT_ASSEMBLER_HH
 #define STRAIN_PRODUCT_ASSEMBLER_HH
 
+#include <array>
+
 #include <dune/common/fvector.hh>
 #include <dune/common/fmatrix.hh>
 
@@ -91,7 +93,7 @@ class StrainProductAssembler
             // /////////////////////////////////////////////
             //   Compute strain for all shape functions
             // /////////////////////////////////////////////
-            std::vector<Dune::array<SymmetricTensor<dim>,dim> > strain(rows);
+            std::vector<std::array<SymmetricTensor<dim>,dim> > strain(rows);
 
             for (int i=0; i<rows; i++) {
 
diff --git a/dune/fufem/assemblers/preconditioneddefectassembler.hh b/dune/fufem/assemblers/preconditioneddefectassembler.hh
index c161703b80df89f1fc7d2b9936bef1220f7d9faf..2bc6f8b0ea718b0a88a1ef45a22814019678b0f7 100644
--- a/dune/fufem/assemblers/preconditioneddefectassembler.hh
+++ b/dune/fufem/assemblers/preconditioneddefectassembler.hh
@@ -1,7 +1,8 @@
 #ifndef PRECONDITIONED_DEFECT_ASSEMBLER_HH
 #define PRECONDITIONED_DEFECT_ASSEMBLER_HH
 
-#include <dune/common/array.hh>
+#include <array>
+
 #include <dune/istl/matrix.hh>
 
 #include "dune/fufem/functionspacebases/functionspacebasis.hh"
@@ -31,9 +32,9 @@ class PreconditionedDefectAssembler
                 const GlobalLHSVectorType& x,
                 const bool lumping=false) const
         {
-            Dune::array<GlobalRHSVectorType*,1> b_wrapped = {{ &b }};
-            Dune::array<const double,1> alpha_wrapped = {{ alpha}};
-            Dune::array<const GlobalLHSVectorType*,1> x_wrapped = {{ &x }};
+            std::array<GlobalRHSVectorType*,1> b_wrapped = {{ &b }};
+            std::array<const double,1> alpha_wrapped = {{ alpha}};
+            std::array<const GlobalLHSVectorType*,1> x_wrapped = {{ &x }};
 
             assembleMultipleResiduals(localAssembler, A, b_wrapped, alpha_wrapped, x_wrapped, lumping);
         }
diff --git a/dune/fufem/blockmatrixview.hh b/dune/fufem/blockmatrixview.hh
index 4541a4a4f6828cc876ceff55f841f7b7e58f5438..274ff14a2c62d9f29b9d6bf9dc010a1d529fd111 100644
--- a/dune/fufem/blockmatrixview.hh
+++ b/dune/fufem/blockmatrixview.hh
@@ -1,10 +1,9 @@
 #ifndef BLOCK_MATRIX_VIEW_HH
 #define BLOCK_MATRIX_VIEW_HH
 
+#include <array>
 #include <vector>
 
-#include <dune/common/array.hh>
-
 template <class MatrixType>
 class BlockMatrixView
 {
@@ -45,7 +44,7 @@ public:
 
     static void setupBlockMatrix(const std::vector<const MatrixType*>& submat, MatrixType& mat);
 protected:
-    std::vector<Dune::array<int,2> > offsets_;
+    std::vector<std::array<int,2> > offsets_;
 
     int nRows_, nCols_;
 
diff --git a/dune/fufem/estimators/refinementindicator.hh b/dune/fufem/estimators/refinementindicator.hh
index 01863626f6c4acc302558a34a656d52b1ee4fac0..c2d52191eca741747572635a01751de185180487 100644
--- a/dune/fufem/estimators/refinementindicator.hh
+++ b/dune/fufem/estimators/refinementindicator.hh
@@ -3,10 +3,9 @@
 #ifndef DUNE_FUFEM_ESTIMATORS_REFINEMENT_INDICATOR_HH
 #define DUNE_FUFEM_ESTIMATORS_REFINEMENT_INDICATOR_HH
 
+#include <array>
 #include <map>
 
-#include <dune/common/array.hh>
-
 #include <dune/localfunctions/common/localkey.hh>
 
 /** \brief Holds refinement indicators for a hierarchical grid
@@ -61,7 +60,7 @@ private:
     const GridType* grid_;
 
     // One map per codimension
-    Dune::array<std::map<IdType, field_type>, dim+1> indicators_;
+    std::array<std::map<IdType, field_type>, dim+1> indicators_;
 
 };
 
diff --git a/dune/fufem/functiontools/basisidmapper.hh b/dune/fufem/functiontools/basisidmapper.hh
index 69849d076627311ad7f9e03a49e95545bfb3e99a..6f5351607e6d2fa4f6e583581cdfa705f5fd670f 100644
--- a/dune/fufem/functiontools/basisidmapper.hh
+++ b/dune/fufem/functiontools/basisidmapper.hh
@@ -1,6 +1,7 @@
 #ifndef BASIS_ID_MAPPER_HH
 #define BASIS_ID_MAPPER_HH
 
+#include <array>
 #include <memory>
 
 #include <dune/common/fvector.hh>
@@ -167,7 +168,7 @@ class BasisIdMapper
 
         StoredFEMap storedFEs_;
         std::map<IdType, const LocalFiniteElement*> elementToFE_;
-        Dune::array< std::map<IdType, int> , dim+1 >  indices_;
+        std::array< std::map<IdType, int> , dim+1 >  indices_;
 
         bool allowVanishingElements_;
 };
diff --git a/dune/fufem/interval.hh b/dune/fufem/interval.hh
index 5332ab123f0f64f169943f151d8772b9acbe2012..ebef2d1f58f332bb3ee79e81397bad8cf9b0227f 100644
--- a/dune/fufem/interval.hh
+++ b/dune/fufem/interval.hh
@@ -1,15 +1,10 @@
 #ifndef DUNE_FUFEM_INTERVAL_HH
 #define DUNE_FUFEM_INTERVAL_HH
 
+#include <array>
 #include <iostream>
 #include <algorithm>
 
-
-
-#include <dune/common/array.hh>
-
-
-
 /** \brief Encapsulates a closed interval
  * \tparam field_type The type used for real numbers
  */
@@ -65,7 +60,7 @@ public:
 private:
     
     /** \brief The actual data */
-    Dune::array<field_type,2> data_;
+    std::array<field_type,2> data_;
 };
 
 //! Output operator for Interval
diff --git a/dune/fufem/matlab_io.hh b/dune/fufem/matlab_io.hh
index 982a3015a521a32598b6447452cd62ba10af2754..987347ae1b751a92784dc688eeba315297fce939 100644
--- a/dune/fufem/matlab_io.hh
+++ b/dune/fufem/matlab_io.hh
@@ -1,11 +1,11 @@
 #ifndef MATLAB_IO_HH
 #define MATLAB_IO_HH
 
+#include <array>
 #include <stdio.h>
 #include <string>
 
 #include <dune/common/exceptions.hh>
-#include <dune/common/array.hh>
 
 /** \file
     \brief Code for writing 1d-grid data in Matlab format
@@ -44,7 +44,7 @@ FILE* openFile(const std::string& filename, GridType& grid)
     This is for domain decomposition stuff. We implicitly assume that the grids are 1D.
 */
 template<class GridType>
-FILE* openFileDD(const std::string& filename, const Dune::array<GridType*, 2>& grid)
+FILE* openFileDD(const std::string& filename, const std::array<GridType*, 2>& grid)
 {
     enum {dim = GridType::dimension};
 
diff --git a/dune/fufem/mechanics/newpfeassembler.hh b/dune/fufem/mechanics/newpfeassembler.hh
index 52184dc38680b053af35d2b5ff992cad38a1947c..e536b79d5ef228a8037fe56ffa13afd2b0a7782b 100644
--- a/dune/fufem/mechanics/newpfeassembler.hh
+++ b/dune/fufem/mechanics/newpfeassembler.hh
@@ -1,6 +1,7 @@
 #ifndef NEWPFEASSEMBLER_HH
 #define NEWPFEASSEMBLER_HH
 
+#include <array>
 
 #include <dune/common/fvector.hh>
 #include <dune/common/fmatrix.hh>
@@ -114,7 +115,7 @@ class NewPFEAssembler : public LocalOperatorAssembler < GridType, TrialLocalFE,
                 // /////////////////////////////////////////////
                 //   Compute strain for all shape functions
                 // /////////////////////////////////////////////
-                std::vector<Dune::array<SymmetricTensor<dim>,dim> > strain(rows);
+                std::vector<std::array<SymmetricTensor<dim>,dim> > strain(rows);
 
                 for (int i=0; i<rows; i++)
                 {
diff --git a/dune/fufem/test/common.hh b/dune/fufem/test/common.hh
index 872f5dcbe0023da348c373c02b9717167f54beac..e309a10fd0d937887372dbf415ec44c470231d14 100644
--- a/dune/fufem/test/common.hh
+++ b/dune/fufem/test/common.hh
@@ -1,7 +1,7 @@
 #ifndef DUNE_FUFEM_TEST_COMMON_HH
 #define DUNE_FUFEM_TEST_COMMON_HH
 
-
+#include <array>
 #include <vector>
 #include <dune/common/fvector.hh>
 
@@ -272,7 +272,7 @@ Dune::YaspGrid<dim>* constructCoarseYaspGrid()
     typedef Dune::YaspGrid<dim> GridType;
 
     Dune::FieldVector<typename GridType::ctype,dim> L(1.0);
-    typename Dune::array<int,dim> s;
+    typename std::array<int,dim> s;
     std::fill(s.begin(), s.end(), 1);
 
     GridType* grid = new GridType(L,s);
diff --git a/dune/fufem/test/functionintegratortest.cc b/dune/fufem/test/functionintegratortest.cc
index 3ca14c61c422d9c2a1f5c3276b50fc0257d298a6..1200d8fee2132f048f9d80478099aa6d97e44d50 100644
--- a/dune/fufem/test/functionintegratortest.cc
+++ b/dune/fufem/test/functionintegratortest.cc
@@ -1,5 +1,6 @@
 #include <config.h>
 
+#include <array>
 #include <cmath>
 #include <stdio.h>
 #include <list>
@@ -95,7 +96,7 @@ class TestPolynomial:
         template <int dim>
         struct PolyCoeff
         {
-            Dune::array<int,dim> multiindex;
+            std::array<int,dim> multiindex;
             double coeff;
 
             PolyCoeff():
diff --git a/dune/fufem/test/laplaceassemblertest.cc b/dune/fufem/test/laplaceassemblertest.cc
index 6c2f45116b27d5de9aea309aa166886fe7b457fe..ee2edc9bf8169fdf78a93f9cb4c41dbc0de23ff8 100644
--- a/dune/fufem/test/laplaceassemblertest.cc
+++ b/dune/fufem/test/laplaceassemblertest.cc
@@ -1,5 +1,7 @@
 #include <config.h>
 
+#include <array>
+
 #include <dune/common/parallel/mpihelper.hh>
 
 #include <dune/grid/yaspgrid.hh>
@@ -29,7 +31,7 @@ int main (int argc, char *argv[]) try
   typedef YaspGrid<2> GridType;
 
   FieldVector<double,2> h(3);
-  Dune::array<int,2> n = {3,3};
+  std::array<int,2> n = {3,3};
 
   GridType grid(h,n);
 
diff --git a/dune/fufem/test/secondorderassemblertest.cc b/dune/fufem/test/secondorderassemblertest.cc
index 3e003fa72480a0944bd32c943da1f347e3aae51a..07124dcc52f0b17596423eb837234933c31971de 100644
--- a/dune/fufem/test/secondorderassemblertest.cc
+++ b/dune/fufem/test/secondorderassemblertest.cc
@@ -2,6 +2,8 @@
 // vi: set ts=8 sw=2 et sts=2:
 #include <config.h>
 
+#include <array>
+
 #include <dune/common/parallel/mpihelper.hh>
 #include <dune/common/timer.hh>
 
@@ -73,7 +75,7 @@ int main (int argc, char *argv[]) try
   typedef YaspGrid<dim> GridType;
 
   FieldVector<double,dim> h(1);
-  Dune::array<int,dim> n;
+  std::array<int,dim> n;
   n.fill(2);
   n[0] = 3;
 
diff --git a/dune/fufem/ulis_tools.hh b/dune/fufem/ulis_tools.hh
index e24f61482cb19ee91348a703712342e28c734221..8f6c93ddccbc3d3f4592ba994b4e2de2ba335383 100644
--- a/dune/fufem/ulis_tools.hh
+++ b/dune/fufem/ulis_tools.hh
@@ -3,7 +3,6 @@
 
 #include <dune/common/fvector.hh>
 #include <dune/common/fmatrix.hh>
-#include <dune/common/array.hh>
 #include <dune/istl/bvector.hh>
 #include <dune/istl/bcrsmatrix.hh>
 #include <dune/istl/matrixindexset.hh>