On receipt of a message the Stack builds a Message around the fd_msg. It does this just to get access to the parsing methods on Message. It does not want to take ownership of fd_msg, so it calls revoke_ownership immediately after it's done (which needs to public so it can be called by the stack).