diff --git a/ProcessLib/HeatConduction/CreateHeatConductionProcess.cpp b/ProcessLib/HeatConduction/CreateHeatConductionProcess.cpp
index 58eaa2fdee125031aa0a4e521ba180bb11020583..7a56153a0cbf6d50cd4e276180b7f8431d59f280 100644
--- a/ProcessLib/HeatConduction/CreateHeatConductionProcess.cpp
+++ b/ProcessLib/HeatConduction/CreateHeatConductionProcess.cpp
@@ -15,7 +15,6 @@
 #include "MaterialLib/MPL/CheckMaterialSpatialDistributionMap.h"
 #include "MaterialLib/MPL/CreateMaterialSpatialDistributionMap.h"
 #include "MaterialLib/MPL/MaterialSpatialDistributionMap.h"
-#include "ParameterLib/Utils.h"
 #include "ProcessLib/Output/CreateSecondaryVariables.h"
 #include "ProcessLib/Utils/ProcessUtils.h"
 
@@ -29,7 +28,8 @@ void checkMPLProperties(
 {
     std::array const required_medium_properties = {
         MaterialPropertyLib::PropertyType::thermal_conductivity,
-        MaterialPropertyLib::PropertyType::heat_capacity};
+        MaterialPropertyLib::PropertyType::heat_capacity,
+        MaterialPropertyLib::PropertyType::density};
     std::array<MaterialPropertyLib::PropertyType, 0> const empty{};
 
     MaterialPropertyLib::checkMaterialSpatialDistributionMap(
@@ -71,20 +71,11 @@ std::unique_ptr<Process> createHeatConductionProcess(
     checkMPLProperties(mesh, *media_map);
     DBUG("Media properties verified.");
 
-    // density parameter.
-    auto& density = ParameterLib::findParameter<double>(
-        config,
-        //! \ogs_file_param_special{prj__processes__process__HEAT_CONDUCTION__density}
-        "density", parameters, 1, &mesh);
-
-    DBUG("Use '{:s}' as density parameter.", density.name);
-
     auto const mass_lumping =
         //! \ogs_file_param{prj__processes__process__HEAT_CONDUCTION__mass_lumping}
         config.getConfigParameter<bool>("mass_lumping", false);
 
-    HeatConductionProcessData process_data{std::move(media_map), density,
-                                           mass_lumping};
+    HeatConductionProcessData process_data{std::move(media_map), mass_lumping};
 
     SecondaryVariableCollection secondary_variables;
 
diff --git a/ProcessLib/HeatConduction/HeatConductionFEM.h b/ProcessLib/HeatConduction/HeatConductionFEM.h
index 3b329edd883b72ff6de9e1c1127a5e8444864ea9..dc676f5214950a3f872ed6c26d05066a9790d7dc 100644
--- a/ProcessLib/HeatConduction/HeatConductionFEM.h
+++ b/ProcessLib/HeatConduction/HeatConductionFEM.h
@@ -20,7 +20,6 @@
 #include "NumLib/Extrapolation/ExtrapolatableElement.h"
 #include "NumLib/Fem/FiniteElement/TemplateIsoparametric.h"
 #include "NumLib/Fem/ShapeMatrixPolicy.h"
-#include "ParameterLib/Parameter.h"
 #include "ProcessLib/LocalAssemblerInterface.h"
 #include "ProcessLib/LocalAssemblerTraits.h"
 #include "ProcessLib/Utils/InitShapeMatrices.h"
@@ -140,7 +139,11 @@ public:
                     .property(
                         MaterialPropertyLib::PropertyType::heat_capacity)
                     .template value<double>(vars, pos, t, dt);
-            auto const density = _process_data.density(t, pos)[0];
+            auto const density =
+                medium
+                    .property(
+                        MaterialPropertyLib::PropertyType::density)
+                    .template value<double>(vars, pos, t, dt);
 
             local_K.noalias() += sm.dNdx.transpose() * k * sm.dNdx * sm.detJ *
                                  wp.getWeight() * sm.integralMeasure;
@@ -217,7 +220,11 @@ public:
                     .property(
                         MaterialPropertyLib::PropertyType::heat_capacity)
                     .template value<double>(vars, pos, t, dt);
-            auto const density = _process_data.density(t, pos)[0];
+            auto const density =
+                medium
+                    .property(
+                        MaterialPropertyLib::PropertyType::density)
+                    .template value<double>(vars, pos, t, dt);
 
             laplace.noalias() += sm.dNdx.transpose() * k * sm.dNdx * w;
             storage.noalias() +=
diff --git a/ProcessLib/HeatConduction/HeatConductionProcessData.h b/ProcessLib/HeatConduction/HeatConductionProcessData.h
index ca6594753313a7259ad6fce7f816b22331062809..2caa26b65db688fd5e19af392276716fb5c1bc0e 100644
--- a/ProcessLib/HeatConduction/HeatConductionProcessData.h
+++ b/ProcessLib/HeatConduction/HeatConductionProcessData.h
@@ -13,12 +13,6 @@
 #include <memory>
 #include "MaterialLib/MPL/MaterialSpatialDistributionMap.h"
 
-namespace ParameterLib
-{
-template <typename T>
-struct Parameter;
-}
-
 namespace ProcessLib::HeatConduction
 {
 struct HeatConductionProcessData
@@ -26,8 +20,6 @@ struct HeatConductionProcessData
     std::unique_ptr<MaterialPropertyLib::MaterialSpatialDistributionMap>
         media_map;
 
-    ParameterLib::Parameter<double> const& density;
-
     /// If set mass lumping will be applied to the equation.
     bool const mass_lumping;
 };