diff --git a/src/one-body-sample.cc b/src/one-body-sample.cc
index 924be5995da81afe6b958f15697636ed933ecb26..5f2b1d2d49b5e5bc99776c884786f033f7e651d2 100644
--- a/src/one-body-sample.cc
+++ b/src/one-body-sample.cc
@@ -169,6 +169,12 @@ int main() {
     setup_boundary<GridType::LeafGridView>(leafView, end_points, ignoreNodes,
                                            neumannNodes, frictionalNodes);
 
+    typedef MyConvexProblem<OperatorType, VectorType, Dune::LinearFunction>
+    MyConvexProblemType;
+    typedef MyBlockProblem<MyConvexProblemType> MyBlockProblemType;
+    GenericNonlinearGS<MyBlockProblemType> nonlinearGSStep;
+    nonlinearGSStep.ignoreNodes_ = &ignoreNodes;
+
     VectorType u1(grid.size(grid.maxLevel(), dim));
     u1 = 0;
     VectorType u2 = u1;
@@ -200,15 +206,9 @@ int main() {
     // }}}
 
     {
-      typedef MyConvexProblem<OperatorType, VectorType, Dune::LinearFunction>
-      MyConvexProblemType;
       MyConvexProblemType myConvexProblem(stiffnessMatrix, myGlobalNonlinearity,
                                           f, u1);
-      typedef MyBlockProblem<MyConvexProblemType> MyBlockProblemType;
       MyBlockProblemType myBlockProblem(myConvexProblem);
-
-      GenericNonlinearGS<MyBlockProblemType> nonlinearGSStep;
-      nonlinearGSStep.ignoreNodes_ = &ignoreNodes;
       nonlinearGSStep.setProblem(u1, myBlockProblem);
 
       LoopSolver<VectorType> solver(&nonlinearGSStep, solver_maxIterations,