diff --git a/dune/elasticity/materials/mooneyrivlindensity.hh b/dune/elasticity/materials/mooneyrivlindensity.hh
index a14f96fb7e99482aea5c93e95a83b9ea078a821f..644fa4492c302234451fc25f42e1eb6466a940aa 100644
--- a/dune/elasticity/materials/mooneyrivlindensity.hh
+++ b/dune/elasticity/materials/mooneyrivlindensity.hh
@@ -66,9 +66,11 @@ public:
        C = F^TF and B = FF^T have the same eigenvalues - we can use either one of them.
 
        There are three Mooney-Rivlin-Variants:
-       ciarlet: W(F) = mooneyrivlin_a*(normF)^2 + mooneyrivlin_b*(normFinv)^2*detF^2 + mooneyrivlin_c*(detF)^2 -
-                       (2*mooneyrivlin_a + 4*mooneyrivlin_b + 2*mooneyrivlin_c)*ln(detF),
-                       where the last term is chosen s.t. W( t*I ) is minimal for t=1
+       ciarlet: W(F) = mooneyrivlin_a * [ (normF)^2 - dim ]              # -dim for w(I) = 0
+                     + mooneyrivlin_b * [ (normFinv)^2*detF^2 - dim ]    # -dim for w(I) = 0
+                     + mooneyrivlin_c * [ (detF)^2 - 1 ]                 # -1   for W(I) = 0
+                     + (2*mooneyrivlin_a + 4*mooneyrivlin_b + 2*mooneyrivlin_c)*ln(detF),
+                       where the last term is chosen s.t. W( t*I ) is minimal for t=1.
        log:     W(F) = \sum_{i,j=0}^{i+j<=n} mooneyrivlin_ij * (I1 - 3)^i * (I2 - 3)^j + mooneyrivlin_k * ln(det(F))^2
        square:  W(F) = \sum_{i,j=0}^{i+j<=n} mooneyrivlin_ij * (I1 - 3)^i * (I2 - 3)^j + mooneyrivlin_k * 0.5 * (det(F) - 1)^2
 
@@ -100,7 +102,9 @@ public:
       gradientInverse.invert();
       field_type frobeinusNormFInverseSquared = gradientInverse.frobenius_norm2();
       using std::log;
-      return mooneyrivlin_a*frobeniusNormFsquared + mooneyrivlin_b*frobeinusNormFInverseSquared*detF*detF + mooneyrivlin_c*detF*detF
+      return   mooneyrivlin_a * ( frobeniusNormFsquared - dim )
+             + mooneyrivlin_b * ( frobeinusNormFInverseSquared*detF*detF - dim )
+             + mooneyrivlin_c * ( detF*detF - 1.0 )
              - (2.0*mooneyrivlin_a + 4.0*mooneyrivlin_b + 2.0*mooneyrivlin_c)*log(detF);
     }
     else
diff --git a/test/mooneyrivlintest.cc b/test/mooneyrivlintest.cc
index 89a04714f34debb74bd53f8a76e74e436a56b100..58ddbd10033cc2615aaab383c9d9f297785fae86 100644
--- a/test/mooneyrivlintest.cc
+++ b/test/mooneyrivlintest.cc
@@ -165,7 +165,7 @@ int main (int argc, char *argv[])
   parameters["mooneyrivlin_a"] = "2.42e+6";
   parameters["mooneyrivlin_b"] = "6.52e+6";
   parameters["mooneyrivlin_c"] = "-7.34e+6";
-  expectedEnergy = 76302830.4;
+  expectedEnergy = 56822830.4;
   expectedGradientTwoNorm = 40670527.3;
   expectedGradientInfinityNorm = 11116511.8;
   expectedMatrixFrobeniusNorm = 2.1978108e+09;