diff --git a/src/one-body-sample.cc b/src/one-body-sample.cc
index c5347ba0bf764d907915e3763dfd84a4eebc8776..292d84a4b43183daaba59b5addfe7db0217e2662 100644
--- a/src/one-body-sample.cc
+++ b/src/one-body-sample.cc
@@ -328,13 +328,12 @@ int main(int argc, char *argv[]) {
       if (parset.get<bool>("useNonlinearGS")) {
         MyConvexProblemType myConvexProblem(stiffnessMatrix,
                                             *myGlobalNonlinearity, b1, u1_diff);
-        auto myBlockProblem = new MyBlockProblemType(parset, myConvexProblem);
-        nonlinearGSStep.setProblem(u1_diff, *myBlockProblem);
+        MyBlockProblemType myBlockProblem(parset, myConvexProblem);
+        nonlinearGSStep.setProblem(u1_diff, myBlockProblem);
 
         LoopSolver<VectorType> solver(&nonlinearGSStep, solver_maxIterations,
                                       solver_tolerance, &energyNorm, verbosity);
         solver.solve();
-        delete myBlockProblem;
       }
 
       u1 += u1_diff;