diff --git a/Applications/ApplicationsLib/UncoupledProcessesTimeLoop.cpp b/Applications/ApplicationsLib/UncoupledProcessesTimeLoop.cpp
index 8ee784babcb5c3be3961c2dc06a8869b7e55cd6e..4eae2e6234e7717d5844329c3cede8b64992212a 100644
--- a/Applications/ApplicationsLib/UncoupledProcessesTimeLoop.cpp
+++ b/Applications/ApplicationsLib/UncoupledProcessesTimeLoop.cpp
@@ -98,8 +98,9 @@ void UncoupledProcessesTimeLoop::setInitialConditions(
         {
             auto& nonlinear_solver = ppd.nonlinear_solver;
             auto& mat_strg = ppd.mat_strg;
+            auto& conv_crit = pcs.getConvergenceCriterion();
 
-            setEquationSystem(nonlinear_solver, ode_sys, nl_tag);
+            setEquationSystem(nonlinear_solver, ode_sys, conv_crit, nl_tag);
             nonlinear_solver.assemble(x0);
             time_disc.pushState(
                 t0, x0, mat_strg);  // TODO: that might do duplicate work
@@ -117,11 +118,12 @@ solveOneTimeStepOneProcess(
         ProcessLib::Output const& output_control)
 {
     auto& time_disc = process.getTimeDiscretization();
+    auto& conv_crit = process.getConvergenceCriterion();
     auto& ode_sys = *process_data.tdisc_ode_sys;
     auto& nonlinear_solver = process_data.nonlinear_solver;
     auto const nl_tag = process_data.nonlinear_solver_tag;
 
-    setEquationSystem(nonlinear_solver, ode_sys, nl_tag);
+    setEquationSystem(nonlinear_solver, ode_sys, conv_crit, nl_tag);
 
     // Note: Order matters!
     // First advance to the next timestep, then set known solutions at that
diff --git a/Applications/ApplicationsLib/UncoupledProcessesTimeLoop.h b/Applications/ApplicationsLib/UncoupledProcessesTimeLoop.h
index 8d61e3dc01cca949fdd1e70201fdd191c0445e7c..7cdce87b19e3bdf3174e71552567ca30f67d6e1e 100644
--- a/Applications/ApplicationsLib/UncoupledProcessesTimeLoop.h
+++ b/Applications/ApplicationsLib/UncoupledProcessesTimeLoop.h
@@ -162,7 +162,8 @@ private:
     //! which is Picard or Newton depending on the NLTag.
     template <NumLib::NonlinearSolverTag NLTag>
     static void setEquationSystem(AbstractNLSolver& nonlinear_solver,
-                                  EquationSystem& eq_sys)
+                                  EquationSystem& eq_sys,
+                                  NumLib::ConvergenceCriterion& conv_crit)
     {
         using Solver = NumLib::NonlinearSolver<NLTag>;
         using EqSys = NumLib::NonlinearSystem<NLTag>;
@@ -173,23 +174,26 @@ private:
         auto& nl_solver_ = static_cast<Solver&>(nonlinear_solver);
         auto& eq_sys_ = static_cast<EqSys&>(eq_sys);
 
-        nl_solver_.setEquationSystem(eq_sys_);
+        nl_solver_.setEquationSystem(eq_sys_, conv_crit);
     }
 
     //! Sets the EquationSystem for the given nonlinear solver,
     //! transparently both for Picard and Newton solvers.
     static void setEquationSystem(AbstractNLSolver& nonlinear_solver,
                                   EquationSystem& eq_sys,
+                                  NumLib::ConvergenceCriterion& conv_crit,
                                   NumLib::NonlinearSolverTag nl_tag)
     {
         using Tag = NumLib::NonlinearSolverTag;
         switch (nl_tag)
         {
             case Tag::Picard:
-                setEquationSystem<Tag::Picard>(nonlinear_solver, eq_sys);
+                setEquationSystem<Tag::Picard>(nonlinear_solver, eq_sys,
+                                               conv_crit);
                 break;
             case Tag::Newton:
-                setEquationSystem<Tag::Newton>(nonlinear_solver, eq_sys);
+                setEquationSystem<Tag::Newton>(nonlinear_solver, eq_sys,
+                                               conv_crit);
                 break;
         }
     }