You yield to this method (in the places where you call it) as if it returns a deferred, but it doesn't. If you want to wait for the message you're dispatching to be processed, you need to do something with the deferred you get from `self.dispatch()`.