diff --git a/src/one-body-sample.cc b/src/one-body-sample.cc
index e9181607d77d35fa21fbd851d359e49e022f7693..f95fc84d73445d22af6a681d50cc77c1ebf56161 100644
--- a/src/one-body-sample.cc
+++ b/src/one-body-sample.cc
@@ -180,13 +180,16 @@ int main(int argc, char *argv[]) {
     upperRight[0] = parset.get<size_t>("body.width");
     upperRight[1] = parset.get<size_t>("body.height");
 
-    Dune::array<unsigned int, dims> elements;
-    std::fill(elements.begin(), elements.end(), 1);
-    elements[0] = parset.get<size_t>("body.width");
-    elements[1] = parset.get<size_t>("body.height");
+    Dune::shared_ptr<GridType> grid;
+    {
+      Dune::array<unsigned int, dims> elements;
+      std::fill(elements.begin(), elements.end(), 1);
+      elements[0] = parset.get<size_t>("body.width");
+      elements[1] = parset.get<size_t>("body.height");
 
-    auto grid = Dune::StructuredGridFactory<GridType>::createSimplexGrid(
-        lowerLeft, upperRight, elements);
+      grid = Dune::StructuredGridFactory<GridType>::createSimplexGrid(
+          lowerLeft, upperRight, elements);
+    }
 
     auto const refinements = parset.get<size_t>("grid.refinements");
     grid->globalRefine(refinements);