diff --git a/src/one-body-sample.cc b/src/one-body-sample.cc
index 620bffd47db7d7819e5445753a0bd208f253b41a..a15db2f89e63c2008fec8fd85d62dc04635a7e4b 100644
--- a/src/one-body-sample.cc
+++ b/src/one-body-sample.cc
@@ -360,8 +360,8 @@ int main(int argc, char *argv[]) {
     u_initial = 0.0;
     {
       LinearFactoryType displacementFactory(parset.sub("solver.tnnmg"), // FIXME
-                                            refinements, 1e-12, // FIXME,
-                                            *grid, displacementDirichletNodes);
+                                            refinements, *grid,
+                                            displacementDirichletNodes);
       auto multigridStep = displacementFactory.getSolver();
       auto const verbosity = parset.get<Solver::VerbosityMode>("io.verbosity");
 
@@ -411,9 +411,9 @@ int main(int argc, char *argv[]) {
         // instead of multiplying M by (1.0 - wc), we divide the RHS
         accelerationRHS *= -1.0 / (1.0 - wc);
       }
-      LinearFactoryType accelerationFactory(parset.sub("solver.tnnmg"), // FIXME
-                                            refinements, 1e-12, // FIXME,
-                                            *grid, accelerationDirichletNodes);
+      LinearFactoryType accelerationFactory(parset.sub("solver.tnnmg"),
+                                            refinements, *grid,
+                                            accelerationDirichletNodes);
       auto multigridStep = accelerationFactory.getSolver();
       auto const verbosity = parset.get<Solver::VerbosityMode>("io.verbosity");
 
@@ -441,8 +441,7 @@ int main(int argc, char *argv[]) {
         MyBlockProblem<ConvexProblem<
             Dune::GlobalNonlinearity<MatrixType, VectorType>, MatrixType>>,
         GridType>;
-    NonlinearFactoryType factory(parset.sub("solver.tnnmg"), refinements,
-                                 solverTolerance, *grid,
+    NonlinearFactoryType factory(parset.sub("solver.tnnmg"), refinements, *grid,
                                  velocityDirichletNodes);
     auto multigridStep = factory.getSolver();
     auto const verbosity = parset.get<Solver::VerbosityMode>("io.verbosity");
diff --git a/src/one-body-sample.parset b/src/one-body-sample.parset
index 5fff9410a97922bc1af98f829a29e67a7b9f88d7..2f7e9abc03bbd3941e32889da9f012a01b51e3e4 100644
--- a/src/one-body-sample.parset
+++ b/src/one-body-sample.parset
@@ -44,6 +44,7 @@ fixed_point_tolerance  = 1e-10
 
 [solver.tnnmg.linear]
 maxiterations = 1000000
+tolerance     = 1e-10
 pre           = 3
 cycle         = 1  # 1 = V, 2 = W, etc.
 post          = 3
diff --git a/src/solverfactory.cc b/src/solverfactory.cc
index d5da5df5d05aeba83b454d2da3e1990c6b13cb85..c47872b693cac0409ad0d9b74c2a548d42e7eb9d 100644
--- a/src/solverfactory.cc
+++ b/src/solverfactory.cc
@@ -13,12 +13,13 @@
 
 template <int dim, class BlockProblemType, class GridType>
 SolverFactory<dim, BlockProblemType, GridType>::SolverFactory(
-    Dune::ParameterTree const &parset, int refinements, double tolerance,
-    GridType const &grid, Dune::BitSetVector<dim> const &ignoreNodes)
+    Dune::ParameterTree const &parset, int refinements, GridType const &grid,
+    Dune::BitSetVector<dim> const &ignoreNodes)
     : baseEnergyNorm(linearBaseSolverStep),
       linearBaseSolver(&linearBaseSolverStep,
-                       parset.get<int>("linear.maxiterations"), tolerance,
-                       &baseEnergyNorm, Solver::QUIET),
+                       parset.get<int>("linear.maxiterations"),
+                       parset.get<double>("linear.tolerance"), &baseEnergyNorm,
+                       Solver::QUIET),
       transferOperators(refinements),
       multigridStep(new SolverType(linearIterationStep, nonlinearSmoother)) {
   // linear iteration step
diff --git a/src/solverfactory.hh b/src/solverfactory.hh
index c91409c7d65a42ddbcffa000ea7f598aeaf9088a..45f4a0d670db1616933f5028f438324b8e973fd9 100644
--- a/src/solverfactory.hh
+++ b/src/solverfactory.hh
@@ -27,7 +27,7 @@ class SolverFactory {
 
 public:
   SolverFactory(Dune::ParameterTree const &parset, int refinements,
-                double tolerance, GridType const &grid,
+                GridType const &grid,
                 Dune::BitSetVector<dim> const &ignoreNodes);
 
   ~SolverFactory();