Index: enable_shared_from_this.hpp =================================================================== --- enable_shared_from_this.hpp (revision 43844) +++ enable_shared_from_this.hpp (working copy) @@ -93,11 +93,14 @@ template void _internal_accept_owner(shared_ptr &owner) const { - init_internal_shared_once(); - get_deleter(_internal_shared_this)->set_deleter(owner); - owner.reset( _internal_shared_this, owner.get() ); - _internal_shared_this.reset(); - _owned = true; + if (_owned == false) + { + init_internal_shared_once(); + get_deleter(_internal_shared_this)->set_deleter(owner); + owner.reset( _internal_shared_this, owner.get() ); + _internal_shared_this.reset(); + _owned = true; + } } }; Diffs between working revision and workfile end here.