diff --git a/ProcessLib/HydroMechanics/HydroMechanicsFEM-impl.h b/ProcessLib/HydroMechanics/HydroMechanicsFEM-impl.h
index 4a3595a374974ce178e12beaefc5a48aa8f24478..cbe46a99d5899fefc75d54fea4ba2727563ea64f 100644
--- a/ProcessLib/HydroMechanics/HydroMechanicsFEM-impl.h
+++ b/ProcessLib/HydroMechanics/HydroMechanicsFEM-impl.h
@@ -705,6 +705,7 @@ void HydroMechanicsLocalAssembler<ShapeFunctionDisplacement,
                                   ShapeFunctionPressure, IntegrationMethod,
                                   DisplacementDim>::
     postNonLinearSolverConcrete(std::vector<double> const& local_x,
+                                std::vector<double> const& /*local_xdot*/,
                                 double const t, double const dt,
                                 bool const use_monolithic_scheme)
 {
diff --git a/ProcessLib/HydroMechanics/HydroMechanicsFEM.h b/ProcessLib/HydroMechanics/HydroMechanicsFEM.h
index a16cad6cde9c3bb891493dac28a8aca62b3e49ea..97b6be8a462348d688d82fe2def794c3eacd1d71 100644
--- a/ProcessLib/HydroMechanics/HydroMechanicsFEM.h
+++ b/ProcessLib/HydroMechanics/HydroMechanicsFEM.h
@@ -196,6 +196,7 @@ public:
         std::vector<double> const& local_x_dot) override;
 
     void postNonLinearSolverConcrete(std::vector<double> const& local_x,
+                                     std::vector<double> const& local_xdot,
                                      double const t, double const dt,
                                      bool const use_monolithic_scheme) override;
 
diff --git a/ProcessLib/HydroMechanics/HydroMechanicsProcess.cpp b/ProcessLib/HydroMechanics/HydroMechanicsProcess.cpp
index d3f93d024b4425d47224c8632f7dec083f7c9a7b..2f755d8f9e44f972e9e879c0f545907547e46e45 100644
--- a/ProcessLib/HydroMechanics/HydroMechanicsProcess.cpp
+++ b/ProcessLib/HydroMechanics/HydroMechanicsProcess.cpp
@@ -502,8 +502,8 @@ void HydroMechanicsProcess<DisplacementDim>::postTimestepConcreteProcess(
 
 template <int DisplacementDim>
 void HydroMechanicsProcess<DisplacementDim>::postNonLinearSolverConcreteProcess(
-    GlobalVector const& x, const double t, double const dt,
-    const int process_id)
+    GlobalVector const& x, GlobalVector const& xdot, const double t,
+    double const dt, const int process_id)
 {
     if (!hasMechanicalProcess(process_id))
     {
@@ -515,7 +515,7 @@ void HydroMechanicsProcess<DisplacementDim>::postNonLinearSolverConcreteProcess(
     ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0];
     GlobalExecutor::executeSelectedMemberOnDereferenced(
         &LocalAssemblerIF::postNonLinearSolver, _local_assemblers,
-        pv.getActiveElementIDs(), getDOFTable(process_id), x, t, dt,
+        pv.getActiveElementIDs(), getDOFTable(process_id), x, xdot, t, dt,
         _use_monolithic_scheme);
 }
 
diff --git a/ProcessLib/LocalAssemblerInterface.cpp b/ProcessLib/LocalAssemblerInterface.cpp
index a1e30460f7265e846fd76ca1f0c4f12c76e51b38..8823795742e39fcb6d0009538afa41186557211a 100644
--- a/ProcessLib/LocalAssemblerInterface.cpp
+++ b/ProcessLib/LocalAssemblerInterface.cpp
@@ -123,12 +123,15 @@ void LocalAssemblerInterface::postTimestep(
 void LocalAssemblerInterface::postNonLinearSolver(
     std::size_t const mesh_item_id,
     NumLib::LocalToGlobalIndexMap const& dof_table, GlobalVector const& x,
-    double const t, double const dt, bool const use_monolithic_scheme)
+    GlobalVector const& xdot, double const t, double const dt,
+    bool const use_monolithic_scheme)
 {
     auto const indices = NumLib::getIndices(mesh_item_id, dof_table);
     auto const local_x = x.get(indices);
+    auto const local_xdot = xdot.get(indices);
 
-    postNonLinearSolverConcrete(local_x, t, dt, use_monolithic_scheme);
+    postNonLinearSolverConcrete(local_x, local_xdot, t, dt,
+                                use_monolithic_scheme);
 }
 
 }  // namespace ProcessLib
diff --git a/ProcessLib/LocalAssemblerInterface.h b/ProcessLib/LocalAssemblerInterface.h
index 9a42e20b46d663a6ae00f6bf7fe55d81d46b570d..b8506c385523c4740b60faaceaa3ec022fd33ebe 100644
--- a/ProcessLib/LocalAssemblerInterface.h
+++ b/ProcessLib/LocalAssemblerInterface.h
@@ -95,8 +95,9 @@ public:
 
     void postNonLinearSolver(std::size_t const mesh_item_id,
                              NumLib::LocalToGlobalIndexMap const& dof_table,
-                             GlobalVector const& x, double const t,
-                             double const dt, bool const use_monolithic_scheme);
+                             GlobalVector const& x, GlobalVector const& xdot,
+                             double const t, double const dt,
+                             bool const use_monolithic_scheme);
 
     virtual std::vector<double> interpolateNodalValuesToIntegrationPoints(
         std::vector<double> const& /*local_x*/)
@@ -143,7 +144,8 @@ private:
     }
 
     virtual void postNonLinearSolverConcrete(
-        std::vector<double> const& /*local_x*/, double const /*t*/,
+        std::vector<double> const& /*local_x*/,
+        std::vector<double> const& /*local_xdot*/, double const /*t*/,
         double const /*dt*/, bool const /*use_monolithic_scheme*/)
     {
     }
diff --git a/ProcessLib/PhaseField/PhaseFieldProcess.cpp b/ProcessLib/PhaseField/PhaseFieldProcess.cpp
index 24914bb733826a6b6016c087a05f4560801757ab..ffe8f9a9aa931e79337c88958b2cd3e33aa31e3e 100644
--- a/ProcessLib/PhaseField/PhaseFieldProcess.cpp
+++ b/ProcessLib/PhaseField/PhaseFieldProcess.cpp
@@ -289,8 +289,8 @@ void PhaseFieldProcess<DisplacementDim>::postTimestepConcreteProcess(
 
 template <int DisplacementDim>
 void PhaseFieldProcess<DisplacementDim>::postNonLinearSolverConcreteProcess(
-    GlobalVector const& x, const double t, double const /*dt*/,
-    const int process_id)
+    GlobalVector const& x, GlobalVector const& /*xdot*/, const double t,
+    double const /*dt*/, const int process_id)
 {
     _process_data.crack_volume = 0.0;
 
diff --git a/ProcessLib/RichardsMechanics/RichardsMechanicsFEM-impl.h b/ProcessLib/RichardsMechanics/RichardsMechanicsFEM-impl.h
index 4f1b15bff1e2ba1eb675b1c594d6d91508edc664..2fbd9078e814ce7776bb80d51356d0f8c32bf40b 100644
--- a/ProcessLib/RichardsMechanics/RichardsMechanicsFEM-impl.h
+++ b/ProcessLib/RichardsMechanics/RichardsMechanicsFEM-impl.h
@@ -1284,6 +1284,7 @@ void RichardsMechanicsLocalAssembler<ShapeFunctionDisplacement,
                                      ShapeFunctionPressure, IntegrationMethod,
                                      DisplacementDim>::
     postNonLinearSolverConcrete(std::vector<double> const& local_x,
+                                std::vector<double> const& /*local_xdot*/,
                                 double const t, double const dt,
                                 bool const use_monolithic_scheme)
 {
diff --git a/ProcessLib/RichardsMechanics/RichardsMechanicsFEM.h b/ProcessLib/RichardsMechanics/RichardsMechanicsFEM.h
index d076b0e98182c3c503f592b23fd32f8d37ef1a27..51372b341458471e1be326ca1111f2b537abefcc 100644
--- a/ProcessLib/RichardsMechanics/RichardsMechanicsFEM.h
+++ b/ProcessLib/RichardsMechanics/RichardsMechanicsFEM.h
@@ -163,6 +163,7 @@ public:
         std::vector<double> const& local_x_dot) override;
 
     void postNonLinearSolverConcrete(std::vector<double> const& local_x,
+                                     std::vector<double> const& local_xdot,
                                      double const t, double const dt,
                                      bool const use_monolithic_scheme) override;
 
diff --git a/ProcessLib/RichardsMechanics/RichardsMechanicsProcess.cpp b/ProcessLib/RichardsMechanics/RichardsMechanicsProcess.cpp
index 308d34d68cf1faf4dd798fb5258400a5a76f190e..6a0003476dda25ef48d1dff1f1347264e8452e28 100644
--- a/ProcessLib/RichardsMechanics/RichardsMechanicsProcess.cpp
+++ b/ProcessLib/RichardsMechanics/RichardsMechanicsProcess.cpp
@@ -569,7 +569,7 @@ void RichardsMechanicsProcess<DisplacementDim>::
     // Calculate strain, stress or other internal variables of mechanics.
     GlobalExecutor::executeSelectedMemberOnDereferenced(
         &LocalAssemblerIF::postNonLinearSolver, _local_assemblers,
-        pv.getActiveElementIDs(), getDOFTable(process_id), x, t, dt,
+        pv.getActiveElementIDs(), getDOFTable(process_id), x, xdot, t, dt,
         _use_monolithic_scheme);
 }
 
diff --git a/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsFEM-impl.h b/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsFEM-impl.h
index 3568452f1ed9fc2c5e838d5c94c6a06aef784617..6d88cc19e50be5e28066bf012e54c8db4cf84155 100644
--- a/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsFEM-impl.h
+++ b/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsFEM-impl.h
@@ -548,6 +548,7 @@ void ThermoHydroMechanicsLocalAssembler<ShapeFunctionDisplacement,
                                         ShapeFunctionPressure,
                                         IntegrationMethod, DisplacementDim>::
     postNonLinearSolverConcrete(std::vector<double> const& local_x,
+                                std::vector<double> const& /*local_xdot*/,
                                 double const t, double const dt,
                                 bool const use_monolithic_scheme)
 {
diff --git a/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsFEM.h b/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsFEM.h
index 834c83f569b186725d35823e8dcfb1f8a32f9591..06aeb75f36ff416117e90b89ba31805e9398bf2d 100644
--- a/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsFEM.h
+++ b/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsFEM.h
@@ -127,6 +127,7 @@ public:
         std::vector<double> const& local_x_dot) override;
 
     void postNonLinearSolverConcrete(std::vector<double> const& local_x,
+                                     std::vector<double> const& local_xdot,
                                      double const t, double const dt,
                                      bool const use_monolithic_scheme) override;
 
diff --git a/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsProcess.cpp b/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsProcess.cpp
index 1d617050c357a1e57e2394b1d85a5f652fbade53..78264e80a535cc7b9d1f970a05ab199e22e091e8 100644
--- a/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsProcess.cpp
+++ b/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsProcess.cpp
@@ -371,7 +371,7 @@ void ThermoHydroMechanicsProcess<DisplacementDim>::
     // Calculate strain, stress or other internal variables of mechanics.
     GlobalExecutor::executeMemberOnDereferenced(
         &LocalAssemblerInterface::postNonLinearSolver, _local_assemblers,
-        getDOFTable(process_id), x, t, dt, _use_monolithic_scheme);
+        getDOFTable(process_id), x, xdot, t, dt, _use_monolithic_scheme);
 }
 
 template <int DisplacementDim>
diff --git a/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldProcess.cpp b/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldProcess.cpp
index 1b3cada6384ae8a7cbbac78bbe3585f6b25b46e8..ed3e85e2a50c54f0e5467f4fed22d70947ebb3b7 100644
--- a/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldProcess.cpp
+++ b/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldProcess.cpp
@@ -314,7 +314,7 @@ void ThermoMechanicalPhaseFieldProcess<DisplacementDim>::
 
     GlobalExecutor::executeSelectedMemberOnDereferenced(
         &LocalAssemblerInterface::postNonLinearSolver, _local_assemblers,
-        pv.getActiveElementIDs(), getDOFTable(process_id), x, t, dt,
+        pv.getActiveElementIDs(), getDOFTable(process_id), x, xdot, t, dt,
         use_monolithic_scheme);
 }