diff --git a/dune/gfe/cosseratenergystiffness.hh b/dune/gfe/cosseratenergystiffness.hh
index 197a1d1133413e4d3a62c8c04800a033d114cfcc..af54e5f1087f1405e16ce129c3ed5b71cc6905bb 100644
--- a/dune/gfe/cosseratenergystiffness.hh
+++ b/dune/gfe/cosseratenergystiffness.hh
@@ -371,7 +371,7 @@ energy(const typename Basis::LocalView& localView,
 
         // Only translational dofs are affected by the volume load
         for (size_t i=0; i<volumeLoadDensity.size(); i++)
-            energy -= thickness_ * (volumeLoadDensity[i] * value.r[i]) * quad[pt].weight() * integrationElement;
+            energy += thickness_ * (volumeLoadDensity[i] * value.r[i]) * quad[pt].weight() * integrationElement;
     }
 
 
@@ -405,7 +405,7 @@ energy(const typename Basis::LocalView& localView,
 
             // Only translational dofs are affected by the Neumann force
             for (size_t i=0; i<neumannValue.size(); i++)
-                energy -= thickness_ * (neumannValue[i] * value.r[i]) * quad[pt].weight() * integrationElement;
+                energy += thickness_ * (neumannValue[i] * value.r[i]) * quad[pt].weight() * integrationElement;
 
         }
 
diff --git a/dune/gfe/nonplanarcosseratshellenergy.hh b/dune/gfe/nonplanarcosseratshellenergy.hh
index 7061eab810e04015304fe4f13a41042f756e6cd9..97a1b6bdf2fc0238a04c0532880e676dbe7d8feb 100644
--- a/dune/gfe/nonplanarcosseratshellenergy.hh
+++ b/dune/gfe/nonplanarcosseratshellenergy.hh
@@ -334,7 +334,7 @@ energy(const typename Basis::LocalView& localView,
 
     // Only translational dofs are affected by the volume load
     for (size_t i=0; i<volumeLoadDensity.size(); i++)
-      energy -= thickness_ * (volumeLoadDensity[i] * value.r[i]) * quad[pt].weight() * integrationElement;
+      energy += thickness_ * (volumeLoadDensity[i] * value.r[i]) * quad[pt].weight() * integrationElement;
   }
 
 
@@ -367,7 +367,7 @@ energy(const typename Basis::LocalView& localView,
 
       // Only translational dofs are affected by the Neumann force
       for (size_t i=0; i<neumannValue.size(); i++)
-        energy -= thickness_ * (neumannValue[i] * value.r[i]) * quad[pt].weight() * integrationElement;
+        energy += thickness_ * (neumannValue[i] * value.r[i]) * quad[pt].weight() * integrationElement;
     }
 
   }
diff --git a/src/cosserat-continuum.cc b/src/cosserat-continuum.cc
index 348182cf00021c7c1691aef5c9c827010dd7fbf9..b4aa70abe91c47bd214e6c4a4ce9ea00cb538d67 100644
--- a/src/cosserat-continuum.cc
+++ b/src/cosserat-continuum.cc
@@ -398,7 +398,7 @@ int main (int argc, char *argv[]) try
 
     auto neumannFunction = [&]( FieldVector<double,dimworld> ) {
       auto nV = neumannValues;
-      nV *= homotopyParameter;
+      nV *= (-homotopyParameter);
       return nV;
     };
 
@@ -408,7 +408,7 @@ int main (int argc, char *argv[]) try
 
     auto volumeLoad = [&]( FieldVector<double,dimworld>) {
       auto vL = volumeLoadValues;
-      vL *= homotopyParameter;
+      vL *= (-homotopyParameter);
       return vL;
     };