diff --git a/dune/istl/basearray.hh b/dune/istl/basearray.hh
index 038ebc3ec3a8acec87abea7ebd7479ef37b5044c..77b2ad8b0ed20c8094a69a1ba8bf9ffbaadda2e3 100644
--- a/dune/istl/basearray.hh
+++ b/dune/istl/basearray.hh
@@ -80,7 +80,7 @@ namespace Dune {
     {
     public:
       //! \brief The unqualified value type
-      typedef typename remove_const<T>::type ValueType;
+      typedef typename std::remove_const<T>::type ValueType;
 
       friend class RandomAccessIteratorFacade<RealIterator<const ValueType>, const ValueType>;
       friend class RandomAccessIteratorFacade<RealIterator<ValueType>, ValueType>;
@@ -582,7 +582,7 @@ namespace Dune {
     {
     public:
       //! \brief The unqualified value type
-      typedef typename remove_const<T>::type ValueType;
+      typedef typename std::remove_const<T>::type ValueType;
 
       friend class BidirectionalIteratorFacade<RealIterator<const ValueType>, const ValueType>;
       friend class BidirectionalIteratorFacade<RealIterator<ValueType>, ValueType>;
diff --git a/dune/istl/bcrsmatrix.hh b/dune/istl/bcrsmatrix.hh
index 2b8ad4571b05628bec3b92c0a394c81905ef284c..7f5b97186823041dbb7439bc4395861f511d1052 100644
--- a/dune/istl/bcrsmatrix.hh
+++ b/dune/istl/bcrsmatrix.hh
@@ -528,7 +528,7 @@ namespace Dune {
 
     public:
       //! \brief The unqualified value type
-      typedef typename remove_const<T>::type ValueType;
+      typedef typename std::remove_const<T>::type ValueType;
 
       friend class RandomAccessIteratorFacade<RealRowIterator<const ValueType>, const ValueType>;
       friend class RandomAccessIteratorFacade<RealRowIterator<ValueType>, ValueType>;
diff --git a/dune/istl/ilusubdomainsolver.hh b/dune/istl/ilusubdomainsolver.hh
index f07a108f4b4001822c2364213b3f6f44fbf86be9..5c72edb63fcb08eb6347e51d071239eb66f4e978 100644
--- a/dune/istl/ilusubdomainsolver.hh
+++ b/dune/istl/ilusubdomainsolver.hh
@@ -33,7 +33,7 @@ namespace Dune {
   class ILUSubdomainSolver  {
   public:
     //! \brief The matrix type the preconditioner is for.
-    typedef typename Dune::remove_const<M>::type matrix_type;
+    typedef typename std::remove_const<M>::type matrix_type;
     //! \brief The domain type of the preconditioner.
     typedef X domain_type;
     //! \brief The range type of the preconditioner.
@@ -75,8 +75,8 @@ namespace Dune {
     : public ILUSubdomainSolver<M,X,Y>{
   public:
     //! \brief The matrix type the preconditioner is for.
-    typedef typename Dune::remove_const<M>::type matrix_type;
-    typedef typename Dune::remove_const<M>::type rilu_type;
+    typedef typename std::remove_const<M>::type matrix_type;
+    typedef typename std::remove_const<M>::type rilu_type;
     //! \brief The domain type of the preconditioner.
     typedef X domain_type;
     //! \brief The range type of the preconditioner.
@@ -108,8 +108,8 @@ namespace Dune {
     : public ILUSubdomainSolver<M,X,Y>{
   public:
     //! \brief The matrix type the preconditioner is for.
-    typedef typename Dune::remove_const<M>::type matrix_type;
-    typedef typename Dune::remove_const<M>::type rilu_type;
+    typedef typename std::remove_const<M>::type matrix_type;
+    typedef typename std::remove_const<M>::type rilu_type;
     //! \brief The domain type of the preconditioner.
     typedef X domain_type;
     //! \brief The range type of the preconditioner.
diff --git a/dune/istl/overlappingschwarz.hh b/dune/istl/overlappingschwarz.hh
index 585b3d8e3ee57c07fcaa6d9123d1205fd0dfd5ea..c5e267c9f7f63c85a9c15feb453bf98ebe09c3ec 100644
--- a/dune/istl/overlappingschwarz.hh
+++ b/dune/istl/overlappingschwarz.hh
@@ -142,9 +142,9 @@ namespace Dune
     typedef BCRSMatrix< FieldMatrix<K,n,n>, Al> M;
   public:
     //! \brief The matrix type the preconditioner is for.
-    typedef typename Dune::remove_const<M>::type matrix_type;
+    typedef typename std::remove_const<M>::type matrix_type;
     typedef K field_type;
-    typedef typename Dune::remove_const<M>::type rilu_type;
+    typedef typename std::remove_const<M>::type rilu_type;
     //! \brief The domain type of the preconditioner.
     typedef X domain_type;
     //! \brief The range type of the preconditioner.
diff --git a/dune/istl/paamg/graph.hh b/dune/istl/paamg/graph.hh
index 27baa294b44e9588a6221dc1f842a886f666019d..6e3bcd38f3d2585368dcf327c292c88a299acd9c 100644
--- a/dune/istl/paamg/graph.hh
+++ b/dune/istl/paamg/graph.hh
@@ -56,7 +56,7 @@ namespace Dune
       /**
        * @brief The mutable type of the matrix we are a graph for.
        */
-      typedef typename remove_const<M>::type MutableMatrix;
+      typedef typename std::remove_const<M>::type MutableMatrix;
 
       /**
        * @brief The type of the weights
@@ -81,7 +81,7 @@ namespace Dune
         /*
          * @brief Whether Matrix is mutable.
          */
-        mutableMatrix = is_same<M, typename remove_const<M>::type>::value
+        mutableMatrix = is_same<M, typename std::remove_const<M>::type>::value
       };
 
 
@@ -96,11 +96,11 @@ namespace Dune
         /**
          *  @brief The mutable type of the container type.
          */
-        typedef typename remove_const<C>::type MutableContainer;
+        typedef typename std::remove_const<C>::type MutableContainer;
         /**
          * @brief The constant type of the container type.
          */
-        typedef const typename remove_const<C>::type ConstContainer;
+        typedef const typename std::remove_const<C>::type ConstContainer;
 
         friend class EdgeIteratorT<MutableContainer>;
         friend class EdgeIteratorT<ConstContainer>;
@@ -149,7 +149,7 @@ namespace Dune
         template<class C1>
         EdgeIteratorT(const EdgeIteratorT<C1>& other);
 
-        typedef typename conditional<is_same<C, typename remove_const<C>::type>::value && C::mutableMatrix,
+        typedef typename conditional<is_same<C, typename std::remove_const<C>::type>::value && C::mutableMatrix,
             typename M::block_type, const typename M::block_type>::type
         WeightType;
 
@@ -162,16 +162,16 @@ namespace Dune
         EdgeIteratorT<C>& operator++();
 
         /** @brief Inequality operator. */
-        bool operator!=(const EdgeIteratorT<typename remove_const<C>::type>& other) const;
+        bool operator!=(const EdgeIteratorT<typename std::remove_const<C>::type>& other) const;
 
         /** @brief Inequality operator. */
-        bool operator!=(const EdgeIteratorT<const typename remove_const<C>::type>& other) const;
+        bool operator!=(const EdgeIteratorT<const typename std::remove_const<C>::type>& other) const;
 
         /** @brief Equality operator. */
-        bool operator==(const EdgeIteratorT<typename remove_const<C>::type>& other) const;
+        bool operator==(const EdgeIteratorT<typename std::remove_const<C>::type>& other) const;
 
         /** @brief Equality operator. */
-        bool operator==(const EdgeIteratorT<const typename remove_const<C>::type>& other) const;
+        bool operator==(const EdgeIteratorT<const typename std::remove_const<C>::type>& other) const;
 
         /** @brief The index of the target vertex of the current edge. */
         VertexDescriptor target() const;
@@ -209,11 +209,11 @@ namespace Dune
         /**
          *  @brief The mutable type of the container type.
          */
-        typedef typename remove_const<C>::type MutableContainer;
+        typedef typename std::remove_const<C>::type MutableContainer;
         /**
          * @brief The constant type of the container type.
          */
-        typedef const typename remove_const<C>::type ConstContainer;
+        typedef const typename std::remove_const<C>::type ConstContainer;
 
         friend class VertexIteratorT<MutableContainer>;
         friend class VertexIteratorT<ConstContainer>;
@@ -259,7 +259,7 @@ namespace Dune
         /** @brief Equality operator. */
         bool operator==(const VertexIteratorT<MutableContainer>& other) const;
 
-        typedef typename conditional<is_same<C, typename remove_const<C>::type>::value && C::mutableMatrix,
+        typedef typename conditional<is_same<C, typename std::remove_const<C>::type>::value && C::mutableMatrix,
             typename M::block_type, const typename M::block_type>::type
         WeightType;
         /** @brief Access the weight of the vertex. */
@@ -794,18 +794,18 @@ namespace Dune
 
       template<class C>
       class VertexIteratorT
-        : public conditional<is_same<typename remove_const<C>::type,
+        : public conditional<is_same<typename std::remove_const<C>::type,
                   C>::value,
               typename Graph::VertexIterator,
               typename Graph::ConstVertexIterator>::type
       {
-        friend class VertexIteratorT<const typename remove_const<C>::type>;
-        friend class VertexIteratorT<typename remove_const<C>::type>;
+        friend class VertexIteratorT<const typename std::remove_const<C>::type>;
+        friend class VertexIteratorT<typename std::remove_const<C>::type>;
       public:
         /**
          * @brief The father class.
          */
-        typedef typename conditional<is_same<typename remove_const<C>::type,
+        typedef typename conditional<is_same<typename std::remove_const<C>::type,
                 C>::value,
             typename Graph::VertexIterator,
             typename Graph::ConstVertexIterator>::type
@@ -814,7 +814,7 @@ namespace Dune
         /**
          * @brief The class of the edge iterator.
          */
-        typedef typename conditional<is_same<typename remove_const<C>::type,
+        typedef typename conditional<is_same<typename std::remove_const<C>::type,
                 C>::value,
             typename Graph::EdgeIterator,
             typename Graph::ConstEdgeIterator>::type
@@ -848,7 +848,7 @@ namespace Dune
         /**
          * @brief Get the properties of the current Vertex.
          */
-        typename conditional<is_same<C,typename remove_const<C>::type>::value,
+        typename conditional<is_same<C,typename std::remove_const<C>::type>::value,
             VertexProperties&,
             const VertexProperties&>::type
         properties() const;
@@ -1029,19 +1029,19 @@ namespace Dune
 
       template<class C>
       class EdgeIteratorT
-        :  public conditional<is_same<typename remove_const<C>::type,
+        :  public conditional<is_same<typename std::remove_const<C>::type,
                   C>::value,
               typename Graph::EdgeIterator,
               typename Graph::ConstEdgeIterator>::type
       {
 
-        friend class EdgeIteratorT<const typename remove_const<C>::type>;
-        friend class EdgeIteratorT<typename remove_const<C>::type>;
+        friend class EdgeIteratorT<const typename std::remove_const<C>::type>;
+        friend class EdgeIteratorT<typename std::remove_const<C>::type>;
       public:
         /**
          * @brief The father class.
          */
-        typedef typename conditional<is_same<typename remove_const<C>::type,
+        typedef typename conditional<is_same<typename std::remove_const<C>::type,
                 C>::value,
             typename Graph::EdgeIterator,
             typename Graph::ConstEdgeIterator>::type
@@ -1074,7 +1074,7 @@ namespace Dune
         /**
          * @brief Get the properties of the current edge.
          */
-        typename conditional<is_same<C,typename remove_const<C>::type>::value,
+        typename conditional<is_same<C,typename std::remove_const<C>::type>::value,
             EdgeProperties&,
             const EdgeProperties&>::type
         properties() const;
@@ -1131,18 +1131,18 @@ namespace Dune
 
       template<class C>
       class VertexIteratorT
-        : public conditional<is_same<typename remove_const<C>::type,
+        : public conditional<is_same<typename std::remove_const<C>::type,
                   C>::value,
               typename Graph::VertexIterator,
               typename Graph::ConstVertexIterator>::type
       {
-        friend class VertexIteratorT<const typename remove_const<C>::type>;
-        friend class VertexIteratorT<typename remove_const<C>::type>;
+        friend class VertexIteratorT<const typename std::remove_const<C>::type>;
+        friend class VertexIteratorT<typename std::remove_const<C>::type>;
       public:
         /**
          * @brief The father class.
          */
-        typedef typename conditional<is_same<typename remove_const<C>::type,
+        typedef typename conditional<is_same<typename std::remove_const<C>::type,
                 C>::value,
             typename Graph::VertexIterator,
             typename Graph::ConstVertexIterator>::type
@@ -1176,7 +1176,7 @@ namespace Dune
         /**
          * @brief Get the properties of the current Vertex.
          */
-        typename conditional<is_same<C,typename remove_const<C>::type>::value,
+        typename conditional<is_same<C,typename std::remove_const<C>::type>::value,
             VertexProperties&,
             const VertexProperties&>::type
         properties() const;
@@ -1584,28 +1584,28 @@ namespace Dune
 
     template<class M>
     template<class C>
-    inline bool MatrixGraph<M>::EdgeIteratorT<C>::operator!=(const typename MatrixGraph<M>::template EdgeIteratorT<typename remove_const<C>::type>& other) const
+    inline bool MatrixGraph<M>::EdgeIteratorT<C>::operator!=(const typename MatrixGraph<M>::template EdgeIteratorT<typename std::remove_const<C>::type>& other) const
     {
       return block_!=other.block_;
     }
 
     template<class M>
     template<class C>
-    inline bool MatrixGraph<M>::EdgeIteratorT<C>::operator!=(const typename MatrixGraph<M>::template EdgeIteratorT<const typename remove_const<C>::type>& other) const
+    inline bool MatrixGraph<M>::EdgeIteratorT<C>::operator!=(const typename MatrixGraph<M>::template EdgeIteratorT<const typename std::remove_const<C>::type>& other) const
     {
       return block_!=other.block_;
     }
 
     template<class M>
     template<class C>
-    inline bool MatrixGraph<M>::EdgeIteratorT<C>::operator==(const typename MatrixGraph<M>::template EdgeIteratorT<typename remove_const<C>::type>& other) const
+    inline bool MatrixGraph<M>::EdgeIteratorT<C>::operator==(const typename MatrixGraph<M>::template EdgeIteratorT<typename std::remove_const<C>::type>& other) const
     {
       return block_==other.block_;
     }
 
     template<class M>
     template<class C>
-    inline bool MatrixGraph<M>::EdgeIteratorT<C>::operator==(const typename MatrixGraph<M>::template EdgeIteratorT<const typename remove_const<C>::type>& other) const
+    inline bool MatrixGraph<M>::EdgeIteratorT<C>::operator==(const typename MatrixGraph<M>::template EdgeIteratorT<const typename std::remove_const<C>::type>& other) const
     {
       return block_==other.block_;
     }
@@ -2076,7 +2076,7 @@ namespace Dune
 
     template<class G, class V, class VM>
     template<class C>
-    typename conditional<is_same<C,typename remove_const<C>::type>::value,
+    typename conditional<is_same<C,typename std::remove_const<C>::type>::value,
         V&, const V&>::type
     inline VertexPropertiesGraph<G,V,VM>::VertexIteratorT<C>::properties() const
     {
@@ -2085,7 +2085,7 @@ namespace Dune
 
     template<class G, class V, class VM>
     template<class C>
-    typename conditional<is_same<typename remove_const<C>::type,
+    typename conditional<is_same<typename std::remove_const<C>::type,
             C>::value,
         typename G::EdgeIterator,
         typename G::ConstEdgeIterator>::type
@@ -2096,7 +2096,7 @@ namespace Dune
 
     template<class G, class V, class VM>
     template<class C>
-    typename conditional<is_same<typename remove_const<C>::type,
+    typename conditional<is_same<typename std::remove_const<C>::type,
             C>::value,
         typename G::EdgeIterator,
         typename G::ConstEdgeIterator>::type
@@ -2195,7 +2195,7 @@ namespace Dune
 
     template<class G, class V, class E, class VM, class EM>
     template<class C>
-    inline typename conditional<is_same<C,typename remove_const<C>::type>::value,E&,const E&>::type
+    inline typename conditional<is_same<C,typename std::remove_const<C>::type>::value,E&,const E&>::type
     PropertiesGraph<G,V,E,VM,EM>::EdgeIteratorT<C>::properties() const
     {
       return graph_->getEdgeProperties(Father::operator*());
@@ -2254,7 +2254,7 @@ namespace Dune
 
     template<class G, class V, class E, class VM, class EM>
     template<class C>
-    inline typename conditional<is_same<C,typename remove_const<C>::type>::value,
+    inline typename conditional<is_same<C,typename std::remove_const<C>::type>::value,
         V&, const V&>::type
     PropertiesGraph<G,V,E,VM,EM>::VertexIteratorT<C>::properties() const
     {
diff --git a/dune/istl/paamg/hierarchy.hh b/dune/istl/paamg/hierarchy.hh
index d624d8776d1e186350e0f2a5743b2ede7f45c0d8..eabd49d1f6109089b4abaaf14df2d0d0295ef811 100644
--- a/dune/istl/paamg/hierarchy.hh
+++ b/dune/istl/paamg/hierarchy.hh
@@ -158,10 +158,10 @@ namespace Dune
       class LevelIterator
         : public BidirectionalIteratorFacade<LevelIterator<C,T1>,T1,T1&>
       {
-        friend class LevelIterator<typename remove_const<C>::type,
-            typename remove_const<T1>::type >;
-        friend class LevelIterator<const typename remove_const<C>::type,
-            const typename remove_const<T1>::type >;
+        friend class LevelIterator<typename std::remove_const<C>::type,
+            typename std::remove_const<T1>::type >;
+        friend class LevelIterator<const typename std::remove_const<C>::type,
+            const typename std::remove_const<T1>::type >;
 
       public:
         /** @brief Constructor. */
@@ -174,22 +174,22 @@ namespace Dune
         {}
 
         /** @brief Copy constructor. */
-        LevelIterator(const LevelIterator<typename remove_const<C>::type,
-                          typename remove_const<T1>::type>& other)
+        LevelIterator(const LevelIterator<typename std::remove_const<C>::type,
+                          typename std::remove_const<T1>::type>& other)
           : element_(other.element_)
         {}
 
         /** @brief Copy constructor. */
-        LevelIterator(const LevelIterator<const typename remove_const<C>::type,
-                          const typename remove_const<T1>::type>& other)
+        LevelIterator(const LevelIterator<const typename std::remove_const<C>::type,
+                          const typename std::remove_const<T1>::type>& other)
           : element_(other.element_)
         {}
 
         /**
          * @brief Equality check.
          */
-        bool equals(const LevelIterator<typename remove_const<C>::type,
-                        typename remove_const<T1>::type>& other) const
+        bool equals(const LevelIterator<typename std::remove_const<C>::type,
+                        typename std::remove_const<T1>::type>& other) const
         {
           return element_ == other.element_;
         }
@@ -197,8 +197,8 @@ namespace Dune
         /**
          * @brief Equality check.
          */
-        bool equals(const LevelIterator<const typename remove_const<C>::type,
-                        const typename remove_const<T1>::type>& other) const
+        bool equals(const LevelIterator<const typename std::remove_const<C>::type,
+                        const typename std::remove_const<T1>::type>& other) const
         {
           return element_ == other.element_;
         }
diff --git a/dune/istl/paamg/test/graphtest.cc b/dune/istl/paamg/test/graphtest.cc
index dd9c249a43f596d7f12abc1214ba169c7da99730..d803f9f1492dc5827dfbe5de72f6b6312870be17 100644
--- a/dune/istl/paamg/test/graphtest.cc
+++ b/dune/istl/paamg/test/graphtest.cc
@@ -349,11 +349,10 @@ void setupAnisotropic(M& A, double eps)
 template<class N, class G>
 void printWeightedGraph(G& graph, std::ostream& os, const N& norm=N())
 {
-  using Dune::remove_const;
   using Dune::is_same;
   using Dune::conditional;
 
-  typedef typename remove_const<G>::type Mutable;
+  typedef typename std::remove_const<G>::type Mutable;
   typedef typename conditional<is_same<G,Mutable>::value,
       typename G::VertexIterator,
       typename G::ConstVertexIterator>::type VertexIterator;
@@ -375,11 +374,10 @@ void printWeightedGraph(G& graph, std::ostream& os, const N& norm=N())
 template<class G>
 void printPropertiesGraph(G& graph, std::ostream& os)
 {
-  using Dune::remove_const;
   using Dune::is_same;
   using Dune::conditional;
 
-  typedef typename remove_const<G>::type Mutable;
+  typedef typename std::remove_const<G>::type Mutable;
   typedef typename conditional<is_same<G,Mutable>::value,
       typename G::VertexIterator,
       typename G::ConstVertexIterator>::type VertexIterator;
@@ -401,11 +399,10 @@ void printPropertiesGraph(G& graph, std::ostream& os)
 template<class G>
 void printGraph(G& graph, std::ostream& os)
 {
-  using Dune::remove_const;
   using Dune::is_same;
   using Dune::conditional;
 
-  typedef typename remove_const<G>::type Mutable;
+  typedef typename std::remove_const<G>::type Mutable;
   typedef typename conditional<is_same<G,Mutable>::value,
       typename G::VertexIterator,
       typename G::ConstVertexIterator>::type VertexIterator;
diff --git a/dune/istl/preconditioners.hh b/dune/istl/preconditioners.hh
index 800fcc7fd9cfe17f58e00cecc039e95d0c3bb8fb..4842866e3705b77acf9737fb9af8ff1290a7c790 100644
--- a/dune/istl/preconditioners.hh
+++ b/dune/istl/preconditioners.hh
@@ -488,7 +488,7 @@ namespace Dune {
   class SeqILU0 : public Preconditioner<X,Y> {
   public:
     //! \brief The matrix type the preconditioner is for.
-    typedef typename Dune::remove_const<M>::type matrix_type;
+    typedef typename std::remove_const<M>::type matrix_type;
     //! \brief The domain type of the preconditioner.
     typedef X domain_type;
     //! \brief The range type of the preconditioner.
@@ -572,7 +572,7 @@ namespace Dune {
   class SeqILUn : public Preconditioner<X,Y> {
   public:
     //! \brief The matrix type the preconditioner is for.
-    typedef typename Dune::remove_const<M>::type matrix_type;
+    typedef typename std::remove_const<M>::type matrix_type;
     //! \brief The domain type of the preconditioner.
     typedef X domain_type;
     //! \brief The range type of the preconditioner.