diff --git a/bin/installexternal.sh b/bin/installexternal.sh
index 187b7ca9da09dc1f7845601ed48e7b3f5001f263..4037c27d1b6a531be8d4a2ad32c5d08b5a6d9cf4 100755
--- a/bin/installexternal.sh
+++ b/bin/installexternal.sh
@@ -174,6 +174,10 @@ installMultidomainGrid()
         rm -rf dune-multidomaingrid
         return
     fi
+
+    echo "Applying patch for dune-multidomaingrid"
+    cd $TOPDIR/dune-multidomaingrid
+    patch -p1 < $TOPDIR/dumux/patches/multidomaingrid-2.3.patch
     cd $TOPDIR
 }
 
diff --git a/patches/README b/patches/README
index c70c43f1e875b246e847d55046092fc8d262e1f1..26b9e32e581174ab6430ebd7180aafc97d5208d7 100644
--- a/patches/README
+++ b/patches/README
@@ -1,3 +1,8 @@
+- If you want to run a Dumux multidomain model, the module dune-multidomaingrid
+  has to be patched: apply multidomaingrid-2.3.patch in the directory containing
+  the releases/2.3-branch of dune-multidomaingrid, e.g.:
+  patch -p1 <../dumux/patches/multidomaingrid-2.3.patch
+
 - If the AMGBackend should be used without SuperLU as coarse grid solver, it can
   be benefitial to decrease the corresponding tolerance. To do so, apply the
   patch istl-2.4.1.patch in your directory containing
diff --git a/patches/multidomaingrid-2.3.patch b/patches/multidomaingrid-2.3.patch
new file mode 100644
index 0000000000000000000000000000000000000000..9a589ed3640d2a848f07b867a022b6b0520b882d
--- /dev/null
+++ b/patches/multidomaingrid-2.3.patch
@@ -0,0 +1,40 @@
+diff --git a/dune/grid/multidomaingrid.hh b/dune/grid/multidomaingrid.hh
+index a8b2a81..318817c 100644
+--- a/dune/grid/multidomaingrid.hh
++++ b/dune/grid/multidomaingrid.hh
+@@ -1,6 +1,8 @@
+ #ifndef DUNE_MULTIDOMAINGRID_HH
+ #define DUNE_MULTIDOMAINGRID_HH
+ 
++#include <numeric>
++
+ #include <dune/common/parallel/collectivecommunication.hh>
+ #include <dune/grid/multidomaingrid/multidomaingrid.hh>
+ #include <dune/grid/multidomaingrid/multidomainmcmgmapper.hh>
+diff --git a/dune/grid/multidomaingrid/subdomaingrid/entity.hh b/dune/grid/multidomaingrid/subdomaingrid/entity.hh
+index f65c6a8..e669710 100644
+--- a/dune/grid/multidomaingrid/subdomaingrid/entity.hh
++++ b/dune/grid/multidomaingrid/subdomaingrid/entity.hh
+@@ -413,17 +413,17 @@ public:
+     return false;
+   }
+ 
+-private:
+-
+-  const GridImp& _grid;
+-  MultiDomainEntityPointer _multiDomainEntityPointer;
+-
+   const EntityWrapper& operator=(const EntityWrapper& rhs) {
+     assert(_grid == rhs._grid);
+     reset(rhs._multiDomainEntityPointer);
+     return *this;
+   }
+ 
++private:
++
++  const GridImp& _grid;
++  MultiDomainEntityPointer _multiDomainEntityPointer;
++
+   template<typename MultiDomainIteratorOrEntityPointer>
+   void reset(const MultiDomainIteratorOrEntityPointer& multiDomainEntityPointer) {
+     _multiDomainEntityPointer = multiDomainEntityPointer;
diff --git a/test/multidomain/2cnistokes2p2cni/2cnistokes2p2cniproblem.hh b/test/multidomain/2cnistokes2p2cni/2cnistokes2p2cniproblem.hh
index 9cec2bb6fc01448ea11cbf3cdb00b08fa49df556..ed17084769b08b3419fd74fd0976b3b014276ffb 100644
--- a/test/multidomain/2cnistokes2p2cni/2cnistokes2p2cniproblem.hh
+++ b/test/multidomain/2cnistokes2p2cni/2cnistokes2p2cniproblem.hh
@@ -32,9 +32,6 @@
 #ifndef DUMUX_2CNISTOKES2P2CNIPROBLEM_HH
 #define DUMUX_2CNISTOKES2P2CNIPROBLEM_HH
 
-//! \todo required for multidomaingrid.hh and GCC 6, delete if fixed there
-#include <numeric>
-
 #include <dune/common/float_cmp.hh>
 #include <dune/grid/common/gridinfo.hh>
 #include <dune/grid/multidomaingrid.hh>
diff --git a/test/multidomain/2cnizeroeq2p2cni/2cnizeroeq2p2cniproblem.hh b/test/multidomain/2cnizeroeq2p2cni/2cnizeroeq2p2cniproblem.hh
index c19e44cf46bc7a0ad9b976583252eaa3ad48219a..ae86e59051f6c93f004ca0d8142d89e82b4ee8ae 100644
--- a/test/multidomain/2cnizeroeq2p2cni/2cnizeroeq2p2cniproblem.hh
+++ b/test/multidomain/2cnizeroeq2p2cni/2cnizeroeq2p2cniproblem.hh
@@ -24,9 +24,6 @@
 #ifndef DUMUX_TWOCNIZEROEQTWOPTWOCNIPROBLEM_HH
 #define DUMUX_TWOCNIZEROEQTWOPTWOCNIPROBLEM_HH
 
-//! \todo required for multidomaingrid.hh and GCC 6, delete if fixed there
-#include <numeric>
-
 #include <dune/grid/multidomaingrid.hh>
 #include <dune/grid/common/gridinfo.hh>
 
diff --git a/test/multidomain/2cstokes2p2c/2cstokes2p2cproblem.hh b/test/multidomain/2cstokes2p2c/2cstokes2p2cproblem.hh
index d7e20aab45cc415fda773138e3f464a533ca6739..97ea6ea2d239378f9dd7294127aa53b1113355a2 100644
--- a/test/multidomain/2cstokes2p2c/2cstokes2p2cproblem.hh
+++ b/test/multidomain/2cstokes2p2c/2cstokes2p2cproblem.hh
@@ -32,9 +32,6 @@
 #ifndef DUMUX_2CSTOKES2P2CPROBLEM_HH
 #define DUMUX_2CSTOKES2P2CPROBLEM_HH
 
-//! \todo required for multidomaingrid.hh and GCC 6, delete if fixed there
-#include <numeric>
-
 #include <dune/common/float_cmp.hh>
 #include <dune/grid/common/gridinfo.hh>
 #include <dune/grid/multidomaingrid.hh>
diff --git a/test/multidomain/2czeroeq2p2c/2czeroeq2p2cproblem.hh b/test/multidomain/2czeroeq2p2c/2czeroeq2p2cproblem.hh
index 3c06dbf95e46a1cea919a06049f74f144e40a874..f128e62569ff848d71b609c820aa40a07c0bdd1c 100644
--- a/test/multidomain/2czeroeq2p2c/2czeroeq2p2cproblem.hh
+++ b/test/multidomain/2czeroeq2p2c/2czeroeq2p2cproblem.hh
@@ -24,9 +24,6 @@
 #ifndef DUMUX_TWOCZEROEQTWOPTWOCPROBLEM_HH
 #define DUMUX_TWOCZEROEQTWOPTWOCPROBLEM_HH
 
-//! \todo required for multidomaingrid.hh and GCC 6, delete if fixed there
-#include <numeric>
-
 #include <dune/grid/multidomaingrid.hh>
 #include <dune/grid/common/gridinfo.hh>
 
diff --git a/test/multidomain/README b/test/multidomain/README
index d8d5db2663089837b754fadd6c5dd8b9c4ffc281..1ef85f0bfd322f12174f2e096f0f81b6c430b796 100755
--- a/test/multidomain/README
+++ b/test/multidomain/README
@@ -4,6 +4,7 @@ You need the following versions of the required Dune modules:
 Dune core modules: 2.4
 dune-typetree, dune-multidomaingrid: release (branch) 2.3
 Dune-PDELab, dune-multidomain: release (branch) 2.0
+dune-multidomaingrid has to be patched, see patches/README for details.
 
 The necessary modules and the correct versions can be obtained by using
 the script located in: