diff --git a/demos/getting_started_3.py b/demos/getting_started_3.py
index a4f6458ff3e6713d3bc228198b3e43ca7fedc5c5..00875a34c4227304927c2b1b9a9e5b34e0a0c595 100644
--- a/demos/getting_started_3.py
+++ b/demos/getting_started_3.py
@@ -109,7 +109,8 @@ if __name__ == '__main__':
     minimizer = ift.NewtonCG(ic_newton)
 
     # Set up likelihood and information Hamiltonian
-    likelihood = ift.GaussianEnergy(mean=data, covariance=N)(signal_response)
+    likelihood = ift.GaussianEnergy(mean=data,
+                                    inverse_covariance=N.inverse)(signal_response)
     H = ift.StandardHamiltonian(likelihood, ic_sampling)
 
     initial_mean = ift.MultiField.full(H.domain, 0.)
diff --git a/nifty5/operators/energy_operators.py b/nifty5/operators/energy_operators.py
index 17a97d8040ee44e643c73c59219a4370a6281987..aad60f4a58bd2c926757923b6c0b3ec5b1126221 100644
--- a/nifty5/operators/energy_operators.py
+++ b/nifty5/operators/energy_operators.py
@@ -110,8 +110,8 @@ class GaussianEnergy(EnergyOperator):
     ----------
     mean : Field
         Mean of the Gaussian. Default is 0.
-    covariance : LinearOperator
-        Covariance of the Gaussian. Default is the identity operator.
+    inverse_covariance : LinearOperator
+        Inverse covariance of the Gaussian. Default is the identity operator.
     domain : Domain, DomainTuple, tuple of Domain or MultiDomain
         Operator domain. By default it is inferred from `mean` or
         `covariance` if specified
@@ -121,28 +121,27 @@ class GaussianEnergy(EnergyOperator):
     At least one of the arguments has to be provided.
     """
 
-    def __init__(self, mean=None, covariance=None, domain=None):
+    def __init__(self, mean=None, inverse_covariance=None, domain=None):
         if mean is not None and not isinstance(mean, (Field, MultiField)):
             raise TypeError
-        if covariance is not None and not isinstance(covariance,
-                                                     LinearOperator):
+        if inverse_covariance is not None and not isinstance(inverse_covariance, LinearOperator):
             raise TypeError
 
         self._domain = None
         if mean is not None:
             self._checkEquivalence(mean.domain)
-        if covariance is not None:
-            self._checkEquivalence(covariance.domain)
+        if inverse_covariance is not None:
+            self._checkEquivalence(inverse_covariance.domain)
         if domain is not None:
             self._checkEquivalence(domain)
         if self._domain is None:
             raise ValueError("no domain given")
         self._mean = mean
-        if covariance is None:
+        if inverse_covariance is None:
             self._op = SquaredNormOperator(self._domain).scale(0.5)
         else:
-            self._op = QuadraticFormOperator(covariance.inverse)
-        self._icov = None if covariance is None else covariance.inverse
+            self._op = QuadraticFormOperator(inverse_covariance)
+        self._icov = None if inverse_covariance is None else inverse_covariance
 
     def _checkEquivalence(self, newdom):
         newdom = makeDomain(newdom)