diff --git a/dune/solvers/iterationsteps/mmgstep.cc b/dune/solvers/iterationsteps/mmgstep.cc
index a3ace8cf3388357650b2402cac1a5f1fd89736d6..87f4f0b65e0b150319b714d5c1c8263cb445a4b1 100644
--- a/dune/solvers/iterationsteps/mmgstep.cc
+++ b/dune/solvers/iterationsteps/mmgstep.cc
@@ -82,7 +82,7 @@ preprocess()
 
         QuadraticIPOptSolver<MatrixType,VectorType>* ipoptBaseSolver = dynamic_cast<QuadraticIPOptSolver<MatrixType,VectorType>*> (this->basesolver_.get());
 
-        ipoptBaseSolver->obstacles_ = obstacleHierarchy_[0];
+        ipoptBaseSolver->setObstacles(*obstacleHierarchy_[0]);
 #endif
     } else {
         DUNE_THROW(SolverError, "You can't use " << typeid(*this->basesolver_).name()
diff --git a/dune/solvers/test/quadraticipoptsolvertest.cc b/dune/solvers/test/quadraticipoptsolvertest.cc
index b606782a4bf71750248b9292570ceeec602aeff8..52c177aab04d3484a8d47898b9fd7702259aa6b8 100644
--- a/dune/solvers/test/quadraticipoptsolvertest.cc
+++ b/dune/solvers/test/quadraticipoptsolvertest.cc
@@ -41,7 +41,7 @@ void solveObstacleProblemByQuadraticIPOptSolver(const GridType& grid, const Matr
     // create solver
     Solver solver(mat,x,rhs, NumProc::REDUCED);
     solver.setIgnore(ignore);
-    solver.obstacles_ = &boxConstraints;
+    solver.setObstacles(boxConstraints);
     // solve problem
     solver.solve();
 }