Hmm, how does this work? I see that _decrypt_msg doesn't return a deferred, but a tuple. shouldn't this be:

```python
d = defer.Deferred(self._decrypt_msg, doc, encdata)  # i.e. like it was before
d.addCallback(self._process_decrypted, log.msg)
```