diff --git a/dune/common/dotproduct.hh b/dune/common/dotproduct.hh
index 48c2b93a78154485b925ee9247480514969e7138..21cddba091b7a1da173be50998c2b11e2abb3777 100644
--- a/dune/common/dotproduct.hh
+++ b/dune/common/dotproduct.hh
@@ -40,7 +40,7 @@ namespace Dune {
    */
   template<class A, class B>
   auto
-  dot(const A & a, const B & b) -> typename enable_if<!IsVector<A>::value && !is_same<typename FieldTraits<A>::field_type,typename FieldTraits<A>::real_type> ::value, decltype(conj(a)*b)>::type
+  dot(const A & a, const B & b) -> typename std::enable_if<!IsVector<A>::value && !is_same<typename FieldTraits<A>::field_type,typename FieldTraits<A>::real_type> ::value, decltype(conj(a)*b)>::type
   {
     return conj(a)*b;
   }
@@ -57,7 +57,7 @@ namespace Dune {
   // fundamental type with A being a real type
   template<class A, class B>
   auto
-  dot(const A & a, const B & b) -> typename enable_if<!IsVector<A>::value && is_same<typename FieldTraits<A>::field_type,typename FieldTraits<A>::real_type>::value, decltype(a*b)>::type
+  dot(const A & a, const B & b) -> typename std::enable_if<!IsVector<A>::value && is_same<typename FieldTraits<A>::field_type,typename FieldTraits<A>::real_type>::value, decltype(a*b)>::type
   {
     return a*b;
   }
@@ -73,7 +73,7 @@ namespace Dune {
    */
   template<typename A, typename B>
   auto
-  dot(const A & a, const B & b) -> typename enable_if<IsVector<A>::value, decltype(a.dot(b))>::type
+  dot(const A & a, const B & b) -> typename std::enable_if<IsVector<A>::value, decltype(a.dot(b))>::type
   {
     return a.dot(b);
   }
diff --git a/dune/common/fvector.hh b/dune/common/fvector.hh
index 1559479d69df069871008fb7fecfca007c73822c..57e01fa1035538d5cf8cbb6b3a0f67870c311204 100644
--- a/dune/common/fvector.hh
+++ b/dune/common/fvector.hh
@@ -138,7 +138,7 @@ namespace Dune {
      * \param[in]  dummy  A void* dummy argument needed by SFINAE.
      */
     template<class C>
-    FieldVector (const DenseVector<C> & x, typename Dune::enable_if<IsFieldVectorSizeCorrect<C,SIZE>::value>::type* dummy=0 )
+    FieldVector (const DenseVector<C> & x, typename std::enable_if<IsFieldVectorSizeCorrect<C,SIZE>::value>::type* dummy=0 )
     {
       DUNE_UNUSED_PARAMETER(dummy);
       // do a run-time size check, for the case that x is not a FieldVector
diff --git a/dune/common/iteratorfacades.hh b/dune/common/iteratorfacades.hh
index d8553ddd09ed8faf96fbd291154ff79f077b77df..ed27c197d0ef4fa14be7759288080e9dfc3c5258 100644
--- a/dune/common/iteratorfacades.hh
+++ b/dune/common/iteratorfacades.hh
@@ -371,7 +371,7 @@ namespace Dune
    */
   template<class T1, class V1, class R1, class D,
       class T2, class V2, class R2>
-  inline typename enable_if<Conversion<T2,T1>::exists,bool>::type
+  inline typename std::enable_if<Conversion<T2,T1>::exists,bool>::type
   operator==(const BidirectionalIteratorFacade<T1,V1,R1,D>& lhs,
              const BidirectionalIteratorFacade<T2,V2,R2,D>& rhs)
   {
@@ -389,7 +389,7 @@ namespace Dune
   template<class T1, class V1, class R1, class D,
       class T2, class V2, class R2>
   inline
-  typename enable_if<Conversion<T1,T2>::exists && !Conversion<T2,T1>::exists,
+  typename std::enable_if<Conversion<T1,T2>::exists && !Conversion<T2,T1>::exists,
       bool>::type
   operator==(const BidirectionalIteratorFacade<T1,V1,R1,D>& lhs,
              const BidirectionalIteratorFacade<T2,V2,R2,D>& rhs)
diff --git a/dune/common/parallel/communicator.hh b/dune/common/parallel/communicator.hh
index 1baf9070c66e2f2ca6c49033cc3b5a6ccac319a9..975f177f1084c9d3f4bf4f589ed668019ff24668 100644
--- a/dune/common/parallel/communicator.hh
+++ b/dune/common/parallel/communicator.hh
@@ -464,7 +464,7 @@ namespace Dune
      * @param interface The interface that defines what indices are to be communicated.
      */
     template<class Data, class Interface>
-    typename enable_if<is_same<SizeOne,typename CommPolicy<Data>::IndexedTypeFlag>::value, void>::type
+    typename std::enable_if<is_same<SizeOne,typename CommPolicy<Data>::IndexedTypeFlag>::value, void>::type
     build(const Interface& interface);
 
     /**
@@ -1137,7 +1137,7 @@ namespace Dune
   }
 
   template<class Data, class Interface>
-  typename enable_if<is_same<SizeOne, typename CommPolicy<Data>::IndexedTypeFlag>::value, void>::type
+  typename std::enable_if<is_same<SizeOne, typename CommPolicy<Data>::IndexedTypeFlag>::value, void>::type
   BufferedCommunicator::build(const Interface& interface)
   {
     interfaces_=interface.interfaces();
diff --git a/dune/common/test/dummyiterator.hh b/dune/common/test/dummyiterator.hh
index a06cb539a3db2fb339f821d3ea21ac1d4264ea42..fa4e45aa127bb6a06f7c38c4111c3f2d42f6df3a 100644
--- a/dune/common/test/dummyiterator.hh
+++ b/dune/common/test/dummyiterator.hh
@@ -25,7 +25,7 @@ public:
   template<typename T2>
   dummyiterator
     ( const dummyiterator<T2>& o,
-    typename Dune::enable_if<Dune::Conversion<T2&, T&>::exists>::type* = 0)
+    typename std::enable_if<Dune::Conversion<T2&, T&>::exists>::type* = 0)
     : value(o.value)
   {}
 
diff --git a/dune/common/typetraits.hh b/dune/common/typetraits.hh
index 86d4b0549bf72a646c7ea0efcc3d0e011f2ea5b5..5103320313bbab51ad0859236ee7d542d5a0dfdc 100644
--- a/dune/common/typetraits.hh
+++ b/dune/common/typetraits.hh
@@ -135,7 +135,7 @@ namespace Dune
    */
   template<class T1, class T2, class Type>
   struct EnableIfInterOperable
-    : public enable_if<IsInteroperable<T1,T2>::value, Type>
+    : public std::enable_if<IsInteroperable<T1,T2>::value, Type>
   {};
 
   // pull in default implementation