diff --git a/ProcessLib/RichardsFlow/CreateRichardsFlowProcess.cpp b/ProcessLib/RichardsFlow/CreateRichardsFlowProcess.cpp
index 7e05e24eca3073e41c9cb97ce1b8c76bb2e05e83..1d844b3334fe06f7791d81390c310bffd097aee3 100644
--- a/ProcessLib/RichardsFlow/CreateRichardsFlowProcess.cpp
+++ b/ProcessLib/RichardsFlow/CreateRichardsFlowProcess.cpp
@@ -107,7 +107,8 @@ std::unique_ptr<Process> createRichardsFlowProcess(
                                          specific_body_force,
                                          has_gravity,
                                          mass_lump,
-                                         curves};
+                                         *curves.at("curve_PC_S"),
+                                         *curves.at("curve_S_Krel")};
     SecondaryVariableCollection secondary_variables;
 
     NumLib::NamedFunctionCaller named_function_caller(
diff --git a/ProcessLib/RichardsFlow/RichardsFlowFEM.h b/ProcessLib/RichardsFlow/RichardsFlowFEM.h
index 3c70ae641d6ef7428874c0e7f04f8bb2b3e1eda4..a30379f94f4cd857f62aab780833567786878b1c 100644
--- a/ProcessLib/RichardsFlow/RichardsFlowFEM.h
+++ b/ProcessLib/RichardsFlow/RichardsFlowFEM.h
@@ -82,9 +82,9 @@ public:
         assert(local_matrix_size == ShapeFunction::NPOINTS * NUM_NODAL_DOF);
 
         MathLib::PiecewiseLinearInterpolation const& interpolated_Pc =
-            *_process_data.curves.at("curve_PC_S");
+            _process_data.interpolated_Pc;
         MathLib::PiecewiseLinearInterpolation const& interpolated_Kr =
-            *_process_data.curves.at("curve_S_Krel");
+            _process_data.interpolated_Kr;
 
         auto local_M = MathLib::createZeroedMatrix<NodalMatrixType>(
             local_M_data, local_matrix_size, local_matrix_size);
diff --git a/ProcessLib/RichardsFlow/RichardsFlowProcessData.h b/ProcessLib/RichardsFlow/RichardsFlowProcessData.h
index 1b4ce009eaf96d70e94b9b784f1f8c7b271dd327..ae9a076a4f48f9ca42cd5820ae9d9c0c8053c365 100644
--- a/ProcessLib/RichardsFlow/RichardsFlowProcessData.h
+++ b/ProcessLib/RichardsFlow/RichardsFlowProcessData.h
@@ -33,9 +33,8 @@ struct RichardsFlowProcessData
         Parameter<double> const& specific_body_force_,
         bool const has_gravity_,
         bool const has_mass_lumping_,
-        std::map<std::string,
-                 std::unique_ptr<MathLib::PiecewiseLinearInterpolation>> const&
-            curves_)
+        MathLib::PiecewiseLinearInterpolation const& interpolated_Pc_,
+        MathLib::PiecewiseLinearInterpolation const& interpolated_Kr_)
         : intrinsic_permeability(intrinsic_permeability_),
           porosity(porosity_),
           viscosity(viscosity_),
@@ -44,7 +43,8 @@ struct RichardsFlowProcessData
           specific_body_force(specific_body_force_),
           has_gravity(has_gravity_),
           has_mass_lumping(has_mass_lumping_),
-          curves(curves_)
+          interpolated_Pc(interpolated_Pc_),
+          interpolated_Kr(interpolated_Kr_)
     {
     }
 
@@ -57,7 +57,8 @@ struct RichardsFlowProcessData
           specific_body_force(other.specific_body_force),
           has_gravity(other.has_gravity),
           has_mass_lumping(other.has_mass_lumping),
-          curves(other.curves)
+          interpolated_Pc(other.interpolated_Pc),
+          interpolated_Kr(other.interpolated_Kr)
     {
     }
 
@@ -78,9 +79,8 @@ struct RichardsFlowProcessData
     Parameter<double> const& specific_body_force;
     bool const has_gravity;
     bool const has_mass_lumping;
-    std::map<std::string,
-             std::unique_ptr<MathLib::PiecewiseLinearInterpolation>> const&
-        curves;
+    MathLib::PiecewiseLinearInterpolation const& interpolated_Pc;
+    MathLib::PiecewiseLinearInterpolation const& interpolated_Kr;
 };
 
 }  // namespace RichardsFlow