diff --git a/src/scheme/HyperelasticSolver.cpp b/src/scheme/HyperelasticSolver.cpp
index b54a221a15d69490df7c6676f6c47f2b4c4af405..9a94c787f8be7cf4bf64060418a3c0e8ae9eeb0f 100644
--- a/src/scheme/HyperelasticSolver.cpp
+++ b/src/scheme/HyperelasticSolver.cpp
@@ -235,7 +235,7 @@ class HyperelasticSolverHandler::HyperelasticSolver final : public HyperelasticS
         for (size_t j = 0; j < node_to_cell.size(); ++j) {
           const CellId J       = node_to_cell[j];
           const unsigned int R = node_local_number_in_its_cells[j];
-          br += Ajr(J, R) * u[J] + sigma[J] * Cjr(J, R);
+          br += Ajr(J, R) * u[J] - sigma[J] * Cjr(J, R);
         }
 
         b[r] = br;
@@ -361,7 +361,7 @@ class HyperelasticSolverHandler::HyperelasticSolver final : public HyperelasticS
         const auto& cell_nodes = cell_to_node_matrix[j];
 
         for (size_t r = 0; r < cell_nodes.size(); ++r) {
-          F(j, r) = Ajr(j, r) * (u[j] - ur[cell_nodes[r]]) + sigma[j] * Cjr(j, r);
+          F(j, r) = -Ajr(j, r) * (u[j] - ur[cell_nodes[r]]) + sigma[j] * Cjr(j, r);
         }
       });