diff --git a/nifty4/minimization/quadratic_energy.py b/nifty4/minimization/quadratic_energy.py
index 203db0ec37f3a5601f7565ca34daa238ae8d2631..fc3d4191fef8070120fb60de539bb1a08446633f 100644
--- a/nifty4/minimization/quadratic_energy.py
+++ b/nifty4/minimization/quadratic_energy.py
@@ -31,12 +31,14 @@ class QuadraticEnergy(Energy):
         self._b = b
         if _grad is not None:
             self._grad = _grad
-            Ax = _grad + self._b
+            Ax = _grad if b is None else _grad + b
         else:
             Ax = self._A(self.position)
-            self._grad = Ax - self._b
+            self._grad = Ax if b is None else Ax - b
         self._grad.lock()
-        self._value = 0.5*self.position.vdot(Ax) - b.vdot(self.position)
+        self._value = 0.5*self.position.vdot(Ax)
+        if b is not None:
+            self._value -= b.vdot(self.position)
 
     def at(self, position):
         return QuadraticEnergy(position=position, A=self._A, b=self._b)