diff --git a/dune/solvers/iterationsteps/projectedblockgsstep.cc b/dune/solvers/iterationsteps/projectedblockgsstep.cc
index 83e28e0e3e1a86b63e38383ab3890f44cc744a8f..e1932420e3f38cb91904620bacb5833453447ba6 100644
--- a/dune/solvers/iterationsteps/projectedblockgsstep.cc
+++ b/dune/solvers/iterationsteps/projectedblockgsstep.cc
@@ -5,6 +5,8 @@ template<class MatrixType, class VectorType>
 inline
 void ProjectedBlockGSStep<MatrixType, VectorType>::iterate()
 {
+	assert(hasObstacle_!=nullptr);
+	
     if (hasObstacle_->size()!= (unsigned int)this->x_->size())
         DUNE_THROW(SolverError, "Size of hasObstacle (" << hasObstacle_->size()
                    << ") doesn't match solution vector (" << this->x_->size() << ")");
@@ -46,6 +48,8 @@ void ProjectedBlockGSStep<MatrixType, VectorType>::iterate()
 
             // Solve the local constraint minimization problem
             // We use a projected Gauss-Seidel, for lack of anything better
+            assert(obstacles_!=nullptr);
+            
             Obstacle defectObstacle = (*obstacles_)[i];
             defectObstacle -= x;
 
diff --git a/dune/solvers/iterationsteps/projectedblockgsstep.hh b/dune/solvers/iterationsteps/projectedblockgsstep.hh
index 9a491168828f8b27f4fbd4e98b602d4865f7d881..821055d2bf48ee70a6909d7b458d275bc4fcb11f 100644
--- a/dune/solvers/iterationsteps/projectedblockgsstep.hh
+++ b/dune/solvers/iterationsteps/projectedblockgsstep.hh
@@ -48,8 +48,8 @@ public:
 
     using HasObstacle = Dune::BitSetVector<BlockSize>;
     using Obstacle = BoxConstraint<Field, BlockSize>;
-    const HasObstacle* hasObstacle_;
-    const std::vector<Obstacle>* obstacles_;
+    const HasObstacle* hasObstacle_ = nullptr;
+    const std::vector<Obstacle>* obstacles_ = nullptr;
 };
 
 #include "projectedblockgsstep.cc"