diff --git a/mozilla/content/xbl/src/nsBindingManager.cpp b/mozilla/content/xbl/src/nsBindingManager.cpp index c86f4173dcb..8eb0d9ca037 100644 --- a/mozilla/content/xbl/src/nsBindingManager.cpp +++ b/mozilla/content/xbl/src/nsBindingManager.cpp @@ -415,7 +415,9 @@ nsBindingManager::ChangeDocumentFor(nsIContent* aContent, nsIDocument* aOldDocum if (! aOldDocument) return NS_ERROR_NULL_POINTER; - nsXBLBinding *binding = nsBindingManager::GetBinding(aContent); + // Hold a ref to the binding so it won't die when we remove it from our + // table. + nsRefPtr binding = nsBindingManager::GetBinding(aContent); if (binding) { binding->ChangeDocument(aOldDocument, aNewDocument); SetBinding(aContent, nsnull);