diff --git a/dom/base/nsNodeUtils.cpp b/dom/base/nsNodeUtils.cpp index 9c1f757fcd..8806773a44 100644 --- a/dom/base/nsNodeUtils.cpp +++ b/dom/base/nsNodeUtils.cpp @@ -471,8 +471,14 @@ nsNodeUtils::CloneAndAdopt(nsINode *aNode, bool aClone, bool aDeep, JSAutoCompartment ac(cx, wrapper); rv = ReparentWrapper(cx, wrapper); if (NS_FAILED(rv)) { + if (wasRegistered) { + aNode->OwnerDoc()->UnregisterActivityObserver(aNode->AsElement()); + } aNode->mNodeInfo.swap(newNodeInfo); + if (wasRegistered) { + aNode->OwnerDoc()->RegisterActivityObserver(aNode->AsElement()); + } return rv; } }