diff --git a/mozilla/content/html/document/src/nsHTMLDocument.cpp b/mozilla/content/html/document/src/nsHTMLDocument.cpp
index 9ac83ed1b1b..60cb626d1d7 100644
--- a/mozilla/content/html/document/src/nsHTMLDocument.cpp
+++ b/mozilla/content/html/document/src/nsHTMLDocument.cpp
@@ -171,7 +171,10 @@ nsHTMLDocument::~nsHTMLDocument()
NS_RELEASE(map);
}
NS_IF_RELEASE(mForms);
- NS_IF_RELEASE(mCSSLoader);
+ if (mCSSLoader) {
+ mCSSLoader->DropDocumentReference(); // release weak ref
+ NS_RELEASE(mCSSLoader);
+ }
// XXX don't bother doing this until the dll is unloaded???
// nsHTMLAtoms::ReleaseAtoms();
diff --git a/mozilla/layout/html/document/src/nsHTMLDocument.cpp b/mozilla/layout/html/document/src/nsHTMLDocument.cpp
index 9ac83ed1b1b..60cb626d1d7 100644
--- a/mozilla/layout/html/document/src/nsHTMLDocument.cpp
+++ b/mozilla/layout/html/document/src/nsHTMLDocument.cpp
@@ -171,7 +171,10 @@ nsHTMLDocument::~nsHTMLDocument()
NS_RELEASE(map);
}
NS_IF_RELEASE(mForms);
- NS_IF_RELEASE(mCSSLoader);
+ if (mCSSLoader) {
+ mCSSLoader->DropDocumentReference(); // release weak ref
+ NS_RELEASE(mCSSLoader);
+ }
// XXX don't bother doing this until the dll is unloaded???
// nsHTMLAtoms::ReleaseAtoms();