diff --git a/dune/elasticity/materials/mooneyrivlindensity.hh b/dune/elasticity/materials/mooneyrivlindensity.hh
index cbad67835dcaf804927fe52bbfc406bf32fb15a4..7317242e96e550e0ab3b39c2db85d46c0f968603 100644
--- a/dune/elasticity/materials/mooneyrivlindensity.hh
+++ b/dune/elasticity/materials/mooneyrivlindensity.hh
@@ -130,7 +130,7 @@ public:
       {
         //mooneyrivlin_energy is "square"
         field_type detFMinus1 = detF - 1;
-        return strainEnergy + mooneyrivlin_k* detFMinus1 * detFMinus1;
+        return strainEnergy + 0.5 * mooneyrivlin_k* detFMinus1 * detFMinus1;
       }
     }
   }
diff --git a/test/mooneyrivlintest.cc b/test/mooneyrivlintest.cc
index b69f5eb4151ad60a4236740d79004266a0ef1718..73fcfdd6b47e65f8618f95d620b4f826370e42b7 100644
--- a/test/mooneyrivlintest.cc
+++ b/test/mooneyrivlintest.cc
@@ -149,10 +149,10 @@ int main (int argc, char *argv[])
   parameters["mooneyrivlin_k"] = "75e+6";
 
   parameters["mooneyrivlin_energy"] = "square";
-  double expectedEnergy = 177758377;
-  double expectedGradientTwoNorm = 2.13791422e+09;
-  double expectedGradientInfinityNorm = 599188506;
-  double expectedMatrixFrobeniusNorm = 1.62529884e+11;
+  double expectedEnergy = 167636683;
+  double expectedGradientTwoNorm = 2.10685704e+09;
+  double expectedGradientInfinityNorm = 589695526;
+  double expectedMatrixFrobeniusNorm = 1.61941167e+11;
   int testSquare = assembleAndCompare(basis, parameters, x, expectedEnergy, expectedGradientTwoNorm, expectedGradientInfinityNorm, expectedMatrixFrobeniusNorm);
 
   parameters["mooneyrivlin_energy"] = "log";