diff --git a/dom/src/base/nsGlobalWindow.cpp b/dom/src/base/nsGlobalWindow.cpp index 369fdc4928f1..062060b8f0b9 100644 --- a/dom/src/base/nsGlobalWindow.cpp +++ b/dom/src/base/nsGlobalWindow.cpp @@ -253,7 +253,11 @@ NS_IMETHODIMP GlobalWindowImpl::SetNewDocument(nsIDOMDocument *aDocument) mDocument = nsnull; // Forces Release if(mContext) - mContext->GC(); + { + // Add an extra ref in case we release mContext during GC. + nsCOMPtr kungFuDeathGrip = mContext; + kungFuDeathGrip->GC(); + } mDocument = aDocument;