diff --git a/dune/solvers/iterationsteps/mmgstep.hh b/dune/solvers/iterationsteps/mmgstep.hh
index c42d277537df4bf88814cf75a0dde50f691c0578..a8bed74f90eab9c238025c5f4ffa7bf459f6f230 100644
--- a/dune/solvers/iterationsteps/mmgstep.hh
+++ b/dune/solvers/iterationsteps/mmgstep.hh
@@ -57,7 +57,10 @@ public:
     //! Set the obstacle field
     void setObstacles(ObstacleVectorType* obstacles) {obstacles_ = obstacles;}
 
-    std::shared_ptr<ObstacleRestrictor<VectorType> > obstacleRestrictor_;
+    //! Set the obstacle restrictor
+    void setObstacleRestrictor(std::shared_ptr<ObstacleRestrictor<VectorType> > restrictor) {
+        obstacleRestrictor_ = restrictor;
+    }
 
     //! Bitfield determining which fine grid nodes have an obstacle
     Dune::BitSetVector<dim>* hasObstacle_;
@@ -70,6 +73,9 @@ public:
     Dune::BitSetVector<dim> oldCritical;
 
 protected:
+    //! The restrictor used to construct the coarse obstacles
+    std::shared_ptr<ObstacleRestrictor<VectorType> > obstacleRestrictor_;
+
     //! Bitfield hierarchy containing the coarse obstacle nodes
     std::vector<Dune::BitSetVector<dim>* > hasObstacleHierarchy_;