Hi Clemens, > void SetTo(const BWeakReference<Type>& other) > { > Unset(); > > if (other.fPointer) { > fPointer = other.fPointer; > fPointer->AcquireReference(); > } > } I'm not sure, but I smell that a possible race condition could be avoided if AcquireReference() is done *before* the assignent? Ignore my remark if it's a plain stupid one :-) Bye, Philippe.