diff --git a/mozilla/toolkit/components/downloads/src/nsDownloadManager.cpp b/mozilla/toolkit/components/downloads/src/nsDownloadManager.cpp index 5c2028be952..68150c6e3c5 100644 --- a/mozilla/toolkit/components/downloads/src/nsDownloadManager.cpp +++ b/mozilla/toolkit/components/downloads/src/nsDownloadManager.cpp @@ -218,7 +218,10 @@ nsDownloadManager::Init() return NS_ERROR_OUT_OF_MEMORY; rv = NS_STATIC_CAST(nsDownloadsDataSource*, (nsIRDFDataSource*)mDataSource.get())->LoadDataSource(); - if (NS_FAILED(rv)) return rv; + if (NS_FAILED(rv)) { + mDataSource = nsnull; // so we don't UnregisterDataSource on it + return rv; + } nsCOMPtr bundleService = do_GetService(kStringBundleServiceCID, &rv); if (NS_FAILED(rv)) return rv;