diff --git a/dune/solvers/common/genericvectortools.hh b/dune/solvers/common/genericvectortools.hh
index b609be86d6c7c7619f3fbae431ead055f3738cdc..3357fbfd8294c0c1af93e05fead235299ed98337 100644
--- a/dune/solvers/common/genericvectortools.hh
+++ b/dune/solvers/common/genericvectortools.hh
@@ -34,19 +34,7 @@ struct GenericVector
     template <class VectorType>
     static void writeBinary(std::ostream& s, const VectorType& v)
     {
-        Dune::Hybrid::forEach(v, [&](auto&& vi) {
-            GenericVector::writeBinary(s, vi);
-        });
-    }
-
-    template <class field_type, int n>
-    static void writeBinary(std::ostream& s, const Dune::FieldVector<field_type,n>& v)
-    {
-        typedef typename Dune::FieldVector<field_type,n> VectorType;
-        typename VectorType::const_iterator it = v.begin();
-        typename VectorType::const_iterator end = v.end();
-        for(; it!=end; ++it)
-            s.write(reinterpret_cast<const char*>(&(*it)), sizeof(field_type));
+      Dune::MatrixVector::Generic::writeBinary(s, v);
     }
 
     //! Read vector from a given stream