Higher priorty gets executed first, as expected.
Don't set the listener null when disconnecting.

If the connection is closed during dispatch, it should still receive the current dispatch and
therefore still needs to hang on to its listener. Furthermore, nulling out the listener didn't
actually accomplish anything, as removing itself with the owner and setting the owner null is all
that's required to close the connection.