diff --git a/dumux/io/grid/gridmanager_sub.hh b/dumux/io/grid/gridmanager_sub.hh
index d15603819290ccd66584ff43fb1532944f5f61e6..885dc48522961a368f534070c02a6e604930311d 100644
--- a/dumux/io/grid/gridmanager_sub.hh
+++ b/dumux/io/grid/gridmanager_sub.hh
@@ -258,13 +258,6 @@ public:
                     return getParamFromGroup<GlobalPosition>(paramGroup, "Grid.UpperRight");
             }();
 
-            // make sure there is no grid refinement specified
-            if (getParamFromGroup<int>(paramGroup, "Grid.Refinement", 0) > 0)
-                DUNE_THROW(Dune::IOError,
-                    "Binary mask doesn't work together with Grid.Refinement."
-                    << " Use grid.globalRefine() after grid construction."
-                );
-
             // construct the host grid
             this->initHostGrid_(lowerLeft, upperRight, cells, paramGroup);
 
@@ -273,7 +266,10 @@ public:
             const char marker = getParamFromGroup<char>(paramGroup, "Grid.Marker", 0);
             const auto elementSelector = [&](const auto& element)
             {
-                const auto eIdx = this->hostGrid_().leafGridView().indexSet().index(element);
+                auto level0 = element;
+                while(level0.hasFather())
+                    level0 = level0.father();
+                const auto eIdx = this->hostGrid_().levelGridView(0).indexSet().index(level0);
                 return buffer[eIdx] != marker;
             };