--- boost_shared_ptr.h	2008-03-17 23:36:08.000000000 -0300
+++ boost_shared_ptr_new.h	2008-06-05 01:36:10.000000000 -0300
@@ -291,8 +291,13 @@
        */
       template<typename _Tp1>
         __shared_ptr(const __shared_ptr<_Tp1, _Lp>& __r, _Tp* __p)
-	: _M_ptr(__p), _M_refcount(__r._M_refcount) // never throws
-        { }
+	: _M_refcount(__r._M_refcount) // never throws
+        { 
+		if(__r.use_count() != 0) 
+			_M_ptr = __p; 
+		else
+			_M_ptr = 0;	
+	}
 #endif
 
       //  generated copy constructor, assignment, destructor are fine.
