diff --git a/Source/WebCore/dom/Element.cpp b/Source/WebCore/dom/Element.cpp
index c61b95d..c62ae49 100644
--- a/Source/WebCore/dom/Element.cpp
+++ b/Source/WebCore/dom/Element.cpp
@@ -75,6 +75,7 @@
 
 Element::~Element()
 {
+    removeShadowRoot();
     if (m_attributeMap)
         m_attributeMap->detachFromElement();
 }
@@ -1084,7 +1085,7 @@
 
 Node* Element::shadowRoot()
 {
-    return hasRareData() ? rareData()->m_shadowRoot.get() : 0;
+    return hasRareData() ? rareData()->m_shadowRoot : 0;
 }
 
 void Element::setShadowRoot(PassRefPtr<Node> node)
@@ -1093,11 +1094,12 @@
     // about compromising DOM tree integrity (eg. node being a parent of this). However,
     // once we implement XBL2, we will have to add integrity checks here.
     removeShadowRoot();
+
     RefPtr<Node> newRoot = node;
     if (!newRoot)
         return;
 
-    ensureRareData()->m_shadowRoot = newRoot;
+    ensureRareData()->m_shadowRoot = newRoot.get();
     newRoot->setShadowHost(this);
 }
 
@@ -1106,7 +1108,9 @@
     if (!hasRareData())
         return;
 
-    if (RefPtr<Node> oldRoot = rareData()->m_shadowRoot.release()) {
+    ElementRareData* data = rareData();
+    if (RefPtr<Node> oldRoot = data->m_shadowRoot) {
+        data->m_shadowRoot = 0;
         document()->removeFocusedNodeOfSubtree(oldRoot.get());
         oldRoot->setShadowHost(0);
         if (oldRoot->inDocument())
diff --git a/Source/WebCore/dom/ElementRareData.h b/Source/WebCore/dom/ElementRareData.h
index f7f30bb..818a2c2 100644
--- a/Source/WebCore/dom/ElementRareData.h
+++ b/Source/WebCore/dom/ElementRareData.h
@@ -33,6 +33,7 @@
 class ElementRareData : public NodeRareData {
 public:
     ElementRareData();
+    virtual ~ElementRareData();
 
     void resetComputedStyle();
 
@@ -41,7 +42,7 @@
 
     IntSize m_minimumSizeForResizing;
     RefPtr<RenderStyle> m_computedStyle;
-    RefPtr<Node> m_shadowRoot;
+    Node* m_shadowRoot;
 
     OwnPtr<DatasetDOMStringMap> m_datasetDOMStringMap;
     OwnPtr<ClassList> m_classList;
@@ -54,9 +55,15 @@
 
 inline ElementRareData::ElementRareData()
     : m_minimumSizeForResizing(defaultMinimumSizeForResizing())
+    , m_shadowRoot(0)
 {
 }
 
+inline ElementRareData::~ElementRareData()
+{
+    ASSERT(!m_shadowRoot);
+}
+
 inline void ElementRareData::resetComputedStyle()
 {
     m_computedStyle.clear();
