diff --git a/dune/matrix-vector/scalartraits.hh b/dune/matrix-vector/scalartraits.hh
index 5fabfc15b132f6d55aa292e68e4997b8765ebf3a..0894730ad29590547ce0cb9883ad2338125c1c5a 100644
--- a/dune/matrix-vector/scalartraits.hh
+++ b/dune/matrix-vector/scalartraits.hh
@@ -3,6 +3,7 @@
 
 #include <dune/common/diagonalmatrix.hh>
 #include <dune/common/fmatrix.hh>
+#include <dune/common/typetraits.hh>
 #include <dune/istl/bcrsmatrix.hh>
 #include <dune/istl/scaledidmatrix.hh>
 
@@ -16,7 +17,7 @@ namespace MatrixVector {
   template <class T>
   struct ScalarTraits {
     enum {
-      isScalar = (std::is_scalar<T>::value and not std::is_pointer<T>::value)
+      isScalar = Dune::IsNumber<T>::value
     };
   };