diff --git a/include/osg/observer_ptr b/include/osg/observer_ptr index f2d315b4f..aca5eca0b 100644 --- a/include/osg/observer_ptr +++ b/include/osg/observer_ptr @@ -40,9 +40,10 @@ class observer_ptr : public Observer observer_ptr(): _ptr(0L) {} observer_ptr(T* t): _ptr(t) { if (_ptr) _ptr->addObserver(this); } - observer_ptr(const observer_ptr& rp): _ptr(0L) + observer_ptr(const observer_ptr& rp) { OpenThreads::ScopedLock lock(*getObserverMutex()); + _ptr = rp._ptr; if (_ptr) _ptr->addObserver(this); }