diff --git a/NumLib/ODESolver/NonlinearSolver.cpp b/NumLib/ODESolver/NonlinearSolver.cpp
index c8a36c347e193e5669b32095b1e6da5ce8ac662b..1becfac427713e81148897efa89b0144a27af126 100644
--- a/NumLib/ODESolver/NonlinearSolver.cpp
+++ b/NumLib/ODESolver/NonlinearSolver.cpp
@@ -188,7 +188,6 @@ bool NonlinearSolver<NonlinearSolverTag::Newton>::solve(
     // TODO be more efficient
     // init _minus_delta_x to the right size and 0.0
     LinAlg::copy(x, minus_delta_x);
-    minus_delta_x.setZero();
 
     _convergence_criterion->preFirstIteration();
 
@@ -208,6 +207,8 @@ bool NonlinearSolver<NonlinearSolverTag::Newton>::solve(
         sys.getJacobian(J);
         INFO("[time] Assembly took %g s.", time_assembly.elapsed());
 
+        minus_delta_x.setZero();
+
         BaseLib::RunTime time_dirichlet;
         time_dirichlet.start();
         sys.applyKnownSolutionsNewton(J, res, minus_delta_x);
diff --git a/Tests/Data b/Tests/Data
index cf0cae279bc383ee612c368972e8fa9e1c72722b..e8530251e2bfeed88f34528ee49db55d6ceb68ee 160000
--- a/Tests/Data
+++ b/Tests/Data
@@ -1 +1 @@
-Subproject commit cf0cae279bc383ee612c368972e8fa9e1c72722b
+Subproject commit e8530251e2bfeed88f34528ee49db55d6ceb68ee