diff --git a/nifty_tools.py b/nifty_tools.py
index 41a8edada17a0549f9ad107a32e7784bdaf167e7..341cc6c66fc49791833df673e0e055b8eaeb0103 100644
--- a/nifty_tools.py
+++ b/nifty_tools.py
@@ -189,6 +189,8 @@ class invertible_operator(operator):
         ## apply operator
         if(self.imp):
             A = self._inverse_multiply
+        elif(id(self.inverse_times)==id(invertible_operator.inverse_times)): ## avoid infinite recursion
+            A = super(invertible_operator,self).inverse_times
         else:
             A = self.inverse_times
         x_,convergence = conjugate_gradient(A,x_,W=W,spam=spam,reset=reset,note=note)(x0=x0,tol=tol,clevel=clevel,limii=limii)
@@ -255,6 +257,8 @@ class invertible_operator(operator):
         ## apply operator
         if(self.imp):
             A = self._multiply
+        elif(id(self.times)==id(invertible_operator.times)): ## avoid infinite recursion
+            A = super(invertible_operator,self).times
         else:
             A = self.times
         x_,convergence = conjugate_gradient(A,x_,W=W,spam=spam,reset=reset,note=note)(x0=x0,tol=tol,clevel=clevel,limii=limii)