def unregister_message_callback(self, type_, from_):
        """
        Unregister a callback previously registered with
        :meth:`register_message_callback`.

        :param type_: Message type to listen for.
        :type type_: :class:`~.MessageType` or :data:`None`
        :param from_: Sender JID to listen for.
        :type from_: :class:`~aioxmpp.JID` or :data:`None`
        :raises KeyError: if no function is currently registered for the given
                          ``(type_, from_)`` pair.
        :raises ValueError: if `type_` is not a valid
                            :class:`~.MessageType` (and cannot be cast
                            to a :class:`~.MessageType`)

        The match is made on the exact pair; it is not possible to unregister
        arbitrary listeners by passing :data:`None` to both arguments (i.e. the
        wildcarding only applies for receiving stanzas, not for unregistering
        callbacks; unregistering the super-wildcard with both arguments set to
        :data:`None` is of course possible).

        .. versionchanged:: 0.7

           The `type_` argument is now supposed to be a
           :class:`~.MessageType` member.

        .. deprecated:: 0.7

           Passing a :class:`str` as `type_` argument is deprecated and will
           raise a :class:`TypeError` as of the 1.0 release. See the Changelog
           for :ref:`api-changelog-0.7` for further details on how to upgrade
           your code efficiently.

        .. deprecated:: 0.9

           This method has been deprecated in favour of and is now implemented
           in terms of the :class:`aioxmpp.dispatcher.SimpleMessageDispatcher`
           service.

           It is equivalent to call
           :meth:`~.SimpleStanzaDispatcher.unregister_callback`, except that
           the latter is not deprecated.
        """
        if type_ is not None:
            type_ = self._coerce_enum(type_, structs.MessageType)
        warnings.warn(
            "unregister_message_callback is deprecated; use "
            "aioxmpp.dispatcher.SimpleMessageDispatcher instead",
            DeprecationWarning,
            stacklevel=2
        )
        self._xxx_message_dispatcher.unregister_callback(
            type_,
            from_,
        )