diff --git a/dune/gfe/riemanniantrsolver.cc b/dune/gfe/riemanniantrsolver.cc
index a8890caa8a022c1a0f5ab3376ffe3a4ba224c930..0f477377c7bbc423f2528577940e466af0576e74 100644
--- a/dune/gfe/riemanniantrsolver.cc
+++ b/dune/gfe/riemanniantrsolver.cc
@@ -283,7 +283,7 @@ void RiemannianTrustRegionSolver<GridType,TargetSpace>::solve()
             for (int j=0; j<innerIterations_; j++) {
         
                 // read iteration from file
-                CorrectionType intermediateSol(grid_->size(1));
+                CorrectionType intermediateSol(grid_->size(gridDim));
                 intermediateSol = 0;
                 char iSolFilename[100];
                 sprintf(iSolFilename, "tmp/mgHistory/intermediatesolution_%04d", j);