diff --git a/src/language/modules/SchemeModule.cpp b/src/language/modules/SchemeModule.cpp
index d7c8755b05e082df8478d755200123e92fd16101..4b4bdfaa9df4b98f9d3a343d2b991b61292c3280 100644
--- a/src/language/modules/SchemeModule.cpp
+++ b/src/language/modules/SchemeModule.cpp
@@ -265,7 +265,7 @@ SchemeModule::SchemeModule()
 
                                           ));
 
-  this->_addBuiltinFunction("normal-stress",
+  this->_addBuiltinFunction("normalstress",
                             std::function(
 
                               [](std::shared_ptr<const IBoundaryDescriptor> boundary,
diff --git a/src/scheme/HyperelasticSolver.cpp b/src/scheme/HyperelasticSolver.cpp
index d72a2655b26885b1510b694d02b03611bc2b8444..5850ba1c204319c4a3f278343576f25d1456ecc3 100644
--- a/src/scheme/HyperelasticSolver.cpp
+++ b/src/scheme/HyperelasticSolver.cpp
@@ -107,7 +107,7 @@ class HyperelasticSolverHandler::HyperelasticSolver final : public HyperelasticS
         const double& rhoaT_j  = rhoaT[j];
         for (size_t r = 0; r < nb_nodes; ++r) {
           const Rdxd& M = tensorProduct(Cjr(j, r), njr(j, r));
-          Ajr(j, r)     = rhoaL_j * M + rhoaT_j * (I - M);
+          Ajr(j, r)     = rhoaL_j * M + rhoaT_j * (l2Norm(Cjr(j, r)) * I - M);
         }
       });
 
@@ -158,7 +158,7 @@ class HyperelasticSolverHandler::HyperelasticSolver final : public HyperelasticS
           for (size_t rl = 0; rl < face_nodes.size(); ++rl) {
             const size_t R = local_node_number_in_cell(face_nodes[rl]);
             const Rdxd& M  = tensorProduct(Nlr(l, rl), nlr(l, rl));
-            Ajr(j, R) += rho_aL * M + rho_aT * (I - M);
+            Ajr(j, R) += rho_aL * M + rho_aT * (l2Norm(Nlr(l, rl)) * I - M);
           }
         }
       });