Here we prepare to ask another brother to resolve our problem.
        The failure here is always ProtocolFailed. If contract finished
        without getting a bid (resolver is not there) we are removing the guy
        from our local list. If we just run into the timeout, we will retry
        in the same setup.

def _prepare_retry(self, state, failure, original_list):
        '''
        Here we prepare to ask another brother to resolve our problem.
        The failure here is always ProtocolFailed. If contract finished
        without getting a bid (resolver is not there) we are removing the guy
        from our local list. If we just run into the timeout, we will retry
        in the same setup.
        '''
        failed_recipient = failure.value.args[0]
        new_list = copy.deepcopy(original_list)
        if failed_recipient is not None:
            if failed_recipient in new_list:
                new_list.remove(failed_recipient)
            else:
                self.error(
                    'I wanted to remove %r from %r, but it is not here!',
                    failed_recipient, new_list)
        return self._iterate(new_list)