diff --git a/dune/solvers/test/energynormtest.cc b/dune/solvers/test/energynormtest.cc
index f01c76dd932c7fce4a68e35194b10f73ccd2fd62..7af179ae8c32aaf3c95d74acec0991cb87b9be53 100644
--- a/dune/solvers/test/energynormtest.cc
+++ b/dune/solvers/test/energynormtest.cc
@@ -145,6 +145,12 @@ struct CustomMultiTypeBlockVector : public Dune::MultiTypeBlockVector<Args...> {
 template<class... Args>
 struct CustomMultiTypeBlockMatrix : public Dune::MultiTypeBlockMatrix<Args...> {
   constexpr static size_t blocklevel = 1; // fake value needed for BCRSMatrix nesting
+
+  // HACK for istl compatibility
+  static constexpr size_t size(){
+    return sizeof...(Args);
+  }
+
   template<class K, typename = std::enable_if_t<Dune::IsNumber<K>::value>>
   void operator*=(K v) { Dune::Hybrid::forEach(*this, [v](auto& b) { b *= v; }); } // allow multiplication by scalar
 };