diff --git a/dune/istl/multitypeblockvector.hh b/dune/istl/multitypeblockvector.hh
index beeb571cef0880a790b767d61764c642da09922a..b405435aa04ad3e585768a0d7cb05b115c9ef570 100644
--- a/dune/istl/multitypeblockvector.hh
+++ b/dune/istl/multitypeblockvector.hh
@@ -10,19 +10,25 @@
 
 #include "istlexception.hh"
 
-#include "gsetc.hh"
-
 #include <boost/fusion/sequence.hpp>
 #include <boost/fusion/container.hpp>
 #include <boost/fusion/iterator.hpp>
 #include <boost/typeof/typeof.hpp>
 #include <boost/fusion/algorithm.hpp>
 
-
-
 namespace mpl=boost::mpl;
 namespace fusion=boost::fusion;
 
+// forward decl
+namespace Dune {
+  template<typename T1, typename T2=fusion::void_, typename T3=fusion::void_, typename T4=fusion::void_,
+      typename T5=fusion::void_, typename T6=fusion::void_, typename T7=fusion::void_,
+      typename T8=fusion::void_, typename T9=fusion::void_>
+  class MultiTypeBlockVector;
+}
+
+#include "gsetc.hh"
+
 namespace Dune {
 
   /**
@@ -223,8 +229,8 @@ namespace Dune {
 
       This vector class combines elements of different types known at compile-time.
    */
-  template<typename T1, typename T2=fusion::void_, typename T3=fusion::void_, typename T4=fusion::void_,
-      typename T5=fusion::void_, typename T6=fusion::void_, typename T7=fusion::void_, typename T8=fusion::void_, typename T9=fusion::void_>
+  template<typename T1, typename T2, typename T3, typename T4,
+      typename T5, typename T6, typename T7, typename T8, typename T9>
   class MultiTypeBlockVector : public fusion::vector<T1, T2, T3, T4, T5, T6, T7, T8, T9> {
 
   public: