diff --git a/src/one-body-sample.cc b/src/one-body-sample.cc
index 690a0ed001e83135ba288ae030c1c6dd192fc61e..94a97492a4eb8c9353e59fdc71da5504299a59bf 100644
--- a/src/one-body-sample.cc
+++ b/src/one-body-sample.cc
@@ -83,13 +83,8 @@ int main() {
       for (size_t j = 0; j < dim; ++j)
         f[i][j] = i * j;
 
-    // TODO: Why does blockGSStep even provide a default constructor?
-    BlockGSStep<OperatorType, VectorType> blockGSStep(stiffnessMatrix, u, f);
-    EnergyNorm<OperatorType, VectorType> energyNorm(blockGSStep);
-
     Dune::BitSetVector<VectorType::block_type::dimension> ignoreNodes(
         grid.size(grid.maxLevel(), dim), false);
-
     { // Play around with the boundary
       typedef GridType::LeafGridView GridView;
       GridView leafView = grid.leafView();
@@ -136,9 +131,11 @@ int main() {
       std::cout << "Number of bounding nodes: " << bounding_nodes << std::endl;
       std::cout << "Number of extremal nodes: " << extremal_nodes << std::endl;
     }
-
+    // TODO: Why does blockGSStep even provide a default constructor?
+    BlockGSStep<OperatorType, VectorType> blockGSStep(stiffnessMatrix, u, f);
     blockGSStep.ignoreNodes_ = &ignoreNodes;
 
+    EnergyNorm<OperatorType, VectorType> energyNorm(blockGSStep);
     LoopSolver<VectorType> solver(&blockGSStep, solver_maxIterations,
                                   solver_tolerance, &energyNorm, Solver::FULL);