diff --git a/MaterialLib/SolidModels/CreateConstitutiveRelation.cpp b/MaterialLib/SolidModels/CreateConstitutiveRelation.cpp
index 87250af2e14aa620e63bee8fecf8d79e34433a3a..aec10048af81bb850d0f999cb78c7da5989c5484 100644
--- a/MaterialLib/SolidModels/CreateConstitutiveRelation.cpp
+++ b/MaterialLib/SolidModels/CreateConstitutiveRelation.cpp
@@ -75,7 +75,7 @@ createConstitutiveRelation(
     {
 #ifdef OGS_USE_MFRONT
         return MaterialLib::Solids::MFront::createMFront<DisplacementDim>(
-            parameters, config);
+            parameters, local_coordinate_system, config);
 #else   // OGS_USE_MFRONT
         OGS_FATAL(
             "OGS is compiled without MFront support. See OGS_USE_MFRONT CMake "
diff --git a/MaterialLib/SolidModels/MFront/CreateMFront.cpp b/MaterialLib/SolidModels/MFront/CreateMFront.cpp
index fbc223167f3524868e16083b5612a29d24b4ff48..f60e81d3f5f32613d9f8768592a05a6d84579142 100644
--- a/MaterialLib/SolidModels/MFront/CreateMFront.cpp
+++ b/MaterialLib/SolidModels/MFront/CreateMFront.cpp
@@ -55,6 +55,8 @@ namespace MFront
 template <int DisplacementDim>
 std::unique_ptr<MechanicsBase<DisplacementDim>> createMFront(
     std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
+    boost::optional<ParameterLib::CoordinateSystem> const&
+        local_coordinate_system,
     BaseLib::ConfigTree const& config)
 {
     INFO("### MFRONT ########################################################");
@@ -191,7 +193,8 @@ std::unique_ptr<MechanicsBase<DisplacementDim>> createMFront(
     INFO("### MFRONT END ####################################################");
 
     return std::make_unique<MFront<DisplacementDim>>(
-        std::move(behaviour), std::move(material_properties));
+        std::move(behaviour), std::move(material_properties),
+        local_coordinate_system);
 }
 }  // namespace MFront
 }  // namespace Solids
@@ -205,9 +208,13 @@ namespace MFront
 {
 template std::unique_ptr<MechanicsBase<2>> createMFront<2>(
     std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
+    boost::optional<ParameterLib::CoordinateSystem> const&
+        local_coordinate_system,
     BaseLib::ConfigTree const& config);
 template std::unique_ptr<MechanicsBase<3>> createMFront<3>(
     std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
+    boost::optional<ParameterLib::CoordinateSystem> const&
+        local_coordinate_system,
     BaseLib::ConfigTree const& config);
 }  // namespace MFront
 }  // namespace Solids
diff --git a/MaterialLib/SolidModels/MFront/CreateMFront.h b/MaterialLib/SolidModels/MFront/CreateMFront.h
index d5301c95b39791127322ff9e52443c0dd490bb14..d50fbcb869e1e013694748f3675118092b08f352 100644
--- a/MaterialLib/SolidModels/MFront/CreateMFront.h
+++ b/MaterialLib/SolidModels/MFront/CreateMFront.h
@@ -25,13 +25,19 @@ namespace MFront
 template <int DisplacementDim>
 std::unique_ptr<MechanicsBase<DisplacementDim>> createMFront(
     std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
+    boost::optional<ParameterLib::CoordinateSystem> const&
+        local_coordinate_system,
     BaseLib::ConfigTree const& config);
 
 extern template std::unique_ptr<MechanicsBase<2>> createMFront<2>(
     std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
+    boost::optional<ParameterLib::CoordinateSystem> const&
+        local_coordinate_system,
     BaseLib::ConfigTree const& config);
 extern template std::unique_ptr<MechanicsBase<3>> createMFront<3>(
     std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
+    boost::optional<ParameterLib::CoordinateSystem> const&
+        local_coordinate_system,
     BaseLib::ConfigTree const& config);
 }  // namespace MFront
 }  // namespace Solids
diff --git a/MaterialLib/SolidModels/MFront/MFront.cpp b/MaterialLib/SolidModels/MFront/MFront.cpp
index e42f0846eceda5737becca8f7bf781a183e9fe5e..af4d50973a8dfc91b4dbc55eb246ba57da4fc10c 100644
--- a/MaterialLib/SolidModels/MFront/MFront.cpp
+++ b/MaterialLib/SolidModels/MFront/MFront.cpp
@@ -159,9 +159,13 @@ const char* varTypeToString(int v)
 template <int DisplacementDim>
 MFront<DisplacementDim>::MFront(
     mgis::behaviour::Behaviour&& behaviour,
-    std::vector<ParameterLib::Parameter<double> const*>&& material_properties)
+    std::vector<ParameterLib::Parameter<double> const*>&& material_properties,
+    boost::optional<ParameterLib::CoordinateSystem> const&
+        local_coordinate_system)
     : _behaviour(std::move(behaviour)),
-      _material_properties(std::move(material_properties))
+      _material_properties(std::move(material_properties)),
+      _local_coordinate_system(
+          local_coordinate_system ? &local_coordinate_system.get() : nullptr)
 {
     auto const hypothesis = behaviour.hypothesis;
 
diff --git a/MaterialLib/SolidModels/MFront/MFront.h b/MaterialLib/SolidModels/MFront/MFront.h
index c1c36fb7a92464fed2b954237b4478d7e348e672..e47f3397708f3487304dac2f018cc54f4598a747 100644
--- a/MaterialLib/SolidModels/MFront/MFront.h
+++ b/MaterialLib/SolidModels/MFront/MFront.h
@@ -66,11 +66,14 @@ public:
 
     MFront(mgis::behaviour::Behaviour&& behaviour,
            std::vector<ParameterLib::Parameter<double> const*>&&
-               material_properties);
+               material_properties,
+           boost::optional<ParameterLib::CoordinateSystem> const&
+               local_coordinate_system);
 
-    std::unique_ptr<
-        typename MechanicsBase<DisplacementDim>::MaterialStateVariables>
-    createMaterialStateVariables() const override;
+        std::unique_ptr<
+            typename MechanicsBase<DisplacementDim>::
+                MaterialStateVariables> createMaterialStateVariables()
+            const override;
 
     std::optional<std::tuple<KelvinVector,
                              std::unique_ptr<typename MechanicsBase<
@@ -102,6 +105,7 @@ public:
 private:
     mgis::behaviour::Behaviour _behaviour;
     std::vector<ParameterLib::Parameter<double> const*> _material_properties;
+    ParameterLib::CoordinateSystem const* const _local_coordinate_system;
 };
 
 extern template class MFront<2>;
diff --git a/Tests/MaterialLib/MFront.cpp b/Tests/MaterialLib/MFront.cpp
index 83e7a7cf10ac6ea84ab2e6301759a2e0f87892df..a756a4f96809e39a9eb9a05049bf94089b342496 100644
--- a/Tests/MaterialLib/MFront.cpp
+++ b/Tests/MaterialLib/MFront.cpp
@@ -53,7 +53,7 @@ struct StandardElasticityBrickBehaviour
             &young_modulus, &poisson_ratio};
 
         auto result = std::make_unique<MFront::MFront<Dim>>(
-            std::move(behaviour), std::move(parameters));
+            std::move(behaviour), std::move(parameters), boost::none);
         return result;
     }
 };
@@ -74,7 +74,7 @@ struct ElasticBehaviour
             &young_modulus, &poisson_ratio};
 
         auto result = std::make_unique<MFront::MFront<Dim>>(
-            std::move(behaviour), std::move(parameters));
+            std::move(behaviour), std::move(parameters), boost::none);
         return result;
     }
 };
@@ -108,7 +108,7 @@ struct MohrCoulombAbboSloanBehaviour
             &tension_cut_off_parameter};
 
         auto result = std::make_unique<MFront::MFront<Dim>>(
-            std::move(behaviour), std::move(parameters));
+            std::move(behaviour), std::move(parameters), boost::none);
         return result;
     }
 };