Argh..... sorry, there was a trivial cut & paste error in the code I just
posted. The errback method should of course be:
def errback(self, fail=None):
if not self._called:
self._called = True
defer.Deferred.errback(self, fail)
Terry