'Populate from the listeners in another :class:`_Dispatch`
object.'

def _update(self, other, only_propagate=True):

    existing_listeners = self.listeners
    existing_listener_set = set(existing_listeners)
    self.propagate.update(other.propagate)
    other_listeners = [l for l in other.listeners if (((l not in existing_listener_set) and (not only_propagate)) or (l in self.propagate))]
    existing_listeners.extend(other_listeners)
    to_associate = other.propagate.union(other_listeners)
    registry._stored_in_collection_multi(self, other, to_associate)
