--- security/manager/ssl/src/nsSSLThread.cpp.orig 2008-04-12 13:47:24.000000000 +0900
+++ security/manager/ssl/src/nsSSLThread.cpp
-@@ -1102,7 +1102,24 @@ void nsSSLThread::Run(void)
+@@ -1078,7 +1078,7 @@ void nsSSLThread::Run(void)
+ // avoid setting event repeatedly
+ PRBool needToSetPollableEvent = PR_FALSE;
+
+- {
++ if (ssl_thread_singleton) {
+ nsAutoLock threadLock(ssl_thread_singleton->mMutex);
+
+ mBusySocket->mThreadData->mSSLState = busy_socket_ssl_state;
+@@ -1102,7 +1102,7 @@ void nsSSLThread::Run(void)
}
}
- {
-+ /*
-+ Sometimes the singleton object is gone at this time. I don't know why. (PHO)
-+
-+ #0 nsSSLThread::~nsSSLThread (this=0x7492050) at nsSSLThread.cpp:61
-+ #1 0x017c6d7c in nsNSSComponent::~nsNSSComponent (this=0x748cb80) at nsNSSComponent.cpp:318
-+ #2 0x017c279c in nsNSSComponent::Release (this=0x748cb80) at nsNSSComponent.cpp:1774
-+ #3 0x017d0d04 in nsNSSComponentConstructor (aOuter=0x748cb80, aIID=@0x1b5dfc0, aResult=0xf0305a28) at nsNSSModule.cpp:166
-+ #4 0x01a13528 in nsComponentManagerImpl::CreateInstance () at nsCertTree.cpp:1300
-+ #5 0x01a13728 in nsComponentManagerImpl::GetService () at nsCertTree.cpp:1300
-+ #6 0x019d1ed4 in nsGetServiceByCIDWithError::operator() () at nsCertTree.cpp:1300
-+ #7 0x019d0c54 in nsCOMPtr_base::assign_from_gs_cid_with_error () at nsCertTree.cpp:1300
-+ #8 0x017cc860 in nsHandleSSLError (socketInfo=0x63aa2c0, err=-12268) at ../../../../dist/include/xpcom/nsCOMPtr.h:669
-+ #9 0x017cd120 in nsSSLThread::checkHandshake (bytesTransfered=-1, wasReading=0, ssl_layer_fd=0x63a5a90, socketInfo=0x63aa2c0) at nsNSSIOLayer.cpp:1674
-+ #10 0x017bce68 in nsSSLThread::Run (this=0x63a32d0) at nsSSLThread.cpp:1040
-+ #11 0x00064670 in _pt_root ()
-+ #12 0x9002bd08 in _pthread_body ()
-+ */
+ if (ssl_thread_singleton) {
nsAutoLock threadLock(ssl_thread_singleton->mMutex);
if (mBusySocket)