Users still assume they hold the only reference, at least until they call send_message. One caveat is that ms_handle_failure is passed a message with an unknown number of refs. The method should not try to free or re-use the message.