diff --git a/ProcessLib/ComponentTransport/ComponentTransportFEM.h b/ProcessLib/ComponentTransport/ComponentTransportFEM.h
index 6ac61afac981458e0a476077d7d4dfe1d0e39f74..6506d7b64175513b777bbe6a56fc07ee4e27eadf 100644
--- a/ProcessLib/ComponentTransport/ComponentTransportFEM.h
+++ b/ProcessLib/ComponentTransport/ComponentTransportFEM.h
@@ -194,8 +194,8 @@ private:
 
     virtual void assembleReactionEquationConcrete(
         double const t, double const dt, Eigen::VectorXd const& local_x,
-        std::vector<double>& local_M_data, std::vector<double>& local_b_data,
-        int const transport_process_id) = 0;
+        std::vector<double>& local_M_data, std::vector<double>& local_K_data,
+        std::vector<double>& local_b_data, int const transport_process_id) = 0;
 
 protected:
     CoupledSolutionsForStaggeredScheme* _coupled_solutions{nullptr};
@@ -1015,7 +1015,8 @@ public:
 
     void assembleReactionEquationConcrete(
         double const t, double const dt, Eigen::VectorXd const& local_x,
-        std::vector<double>& local_M_data, std::vector<double>& local_b_data,
+        std::vector<double>& local_M_data, std::vector<double>& local_K_data,
+        std::vector<double>& local_b_data,
         int const transport_process_id) override
     {
         auto const local_C = local_x.template segment<concentration_size>(
@@ -1024,6 +1025,8 @@ public:
 
         auto local_M = MathLib::createZeroedMatrix<LocalBlockMatrixType>(
             local_M_data, concentration_size, concentration_size);
+        auto local_K = MathLib::createZeroedMatrix<LocalBlockMatrixType>(
+            local_K_data, concentration_size, concentration_size);
         auto local_b = MathLib::createZeroedVector<LocalVectorType>(
             local_b_data, concentration_size);
 
@@ -1056,6 +1059,8 @@ public:
             vars[static_cast<int>(
                 MaterialPropertyLib::Variable::concentration)] = C_int_pt;
 
+            auto const porosity_dot = (porosity - porosity_prev) / dt;
+
             // porosity
             {
                 vars_prev[static_cast<int>(
@@ -1071,6 +1076,8 @@ public:
 
             local_M.noalias() += w * N.transpose() * porosity * N;
 
+            local_K.noalias() += w * N.transpose() * porosity_dot * N;
+
             auto const C_post_int_pt =
                 _process_data.chemical_solver_interface->getConcentration(
                     component_id, chemical_system_id);