I'm looking at shared_ptr and weak_ptr as a TR1 standard approach. It is hard to follow the implementation, but I'm wondering about some specific issues. My set of classes (http://www.dlugosz.com/Repertoire/refman/Classics/Smart%20Pointers%20Overvie...), published over ten years ago, has similar features. My class "baro" is like your weak_pointer. I recall a threading issue where one thread is dropping the last owned reference at the same time another thread is realizing a weak_pointer. The first decrements the refcount to zero, and the second increments it again. Is the object destructed? I'm using a specific mechanism to support this and related features, and I don't see that in your code. Is the Boost implementation for Windows (32 and 64-bit) robust and lock-free in cases like this? How does it work? --John TradeStation Group, Inc. is a publicly-traded holding company (NASDAQ GS: TRAD) of three operating subsidiaries, TradeStation Securities, Inc. (Member NYSE, FINRA, SIPC and NFA), TradeStation Technologies, Inc., a trading software and subscription company, and TradeStation Europe Limited, a United Kingdom, FSA-authorized introducing brokerage firm. None of these companies provides trading or investment advice, recommendations or endorsements of any kind. The information transmitted is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon, this information by persons or entities other than the intended recipient is prohibited. If you received this in error, please contact the sender and delete the material from any computer.