Never call shared_from_this() on any object other than "this". Adapt the API so that it can be made protected.