diff --git a/ProcessLib/RichardsMechanics/RichardsMechanicsFEM-impl.h b/ProcessLib/RichardsMechanics/RichardsMechanicsFEM-impl.h
index 82cf97988ff78b71405e5caca4eef80dabb8ba66..db458015520565c79bf3c52910bc481d4573477b 100644
--- a/ProcessLib/RichardsMechanics/RichardsMechanicsFEM-impl.h
+++ b/ProcessLib/RichardsMechanics/RichardsMechanicsFEM-impl.h
@@ -941,16 +941,19 @@ void RichardsMechanicsLocalAssembler<ShapeFunctionDisplacement,
 
         if (medium->hasProperty(MPL::PropertyType::transport_porosity))
         {
-            variables_prev[static_cast<int>(
-                MPL::Variable::transport_porosity)] =
-                _ip_data[ip].transport_porosity_prev;
+            if (!medium->hasProperty(MPL::PropertyType::saturation_micro))
+            {
+                variables_prev[static_cast<int>(
+                    MPL::Variable::transport_porosity)] =
+                    _ip_data[ip].transport_porosity_prev;
 
-            _ip_data[ip].transport_porosity =
-                medium->property(MPL::PropertyType::transport_porosity)
-                    .template value<double>(variables, variables_prev,
-                                            x_position, t, dt);
-            variables[static_cast<int>(MPL::Variable::transport_porosity)] =
-                _ip_data[ip].transport_porosity;
+                _ip_data[ip].transport_porosity =
+                    medium->property(MPL::PropertyType::transport_porosity)
+                        .template value<double>(variables, variables_prev,
+                                                x_position, t, dt);
+                variables[static_cast<int>(MPL::Variable::transport_porosity)] =
+                    _ip_data[ip].transport_porosity;
+            }
         }
         else
         {
@@ -1722,16 +1725,19 @@ void RichardsMechanicsLocalAssembler<ShapeFunctionDisplacement,
 
         if (medium->hasProperty(MPL::PropertyType::transport_porosity))
         {
-            variables_prev[static_cast<int>(
-                MPL::Variable::transport_porosity)] =
-                _ip_data[ip].transport_porosity_prev;
+            if (!medium->hasProperty(MPL::PropertyType::saturation_micro))
+            {
+                variables_prev[static_cast<int>(
+                    MPL::Variable::transport_porosity)] =
+                    _ip_data[ip].transport_porosity_prev;
 
-            _ip_data[ip].transport_porosity =
-                medium->property(MPL::PropertyType::transport_porosity)
-                    .template value<double>(variables, variables_prev,
-                                            x_position, t, dt);
-            variables[static_cast<int>(MPL::Variable::transport_porosity)] =
-                _ip_data[ip].transport_porosity;
+                _ip_data[ip].transport_porosity =
+                    medium->property(MPL::PropertyType::transport_porosity)
+                        .template value<double>(variables, variables_prev,
+                                                x_position, t, dt);
+                variables[static_cast<int>(MPL::Variable::transport_porosity)] =
+                    _ip_data[ip].transport_porosity;
+            }
         }
         else
         {