diff --git a/Userland/Libraries/LibWeb/DOM/Node.cpp b/Userland/Libraries/LibWeb/DOM/Node.cpp index 5b933a892e9..5bb5cffd7bc 100644 --- a/Userland/Libraries/LibWeb/DOM/Node.cpp +++ b/Userland/Libraries/LibWeb/DOM/Node.cpp @@ -181,6 +181,8 @@ const Element* Node::parent_element() const RefPtr Node::append_child(NonnullRefPtr node, bool notify) { + if (node->parent()) + node->parent()->remove_child(node); if (&node->document() != &document()) document().adopt_node(node); TreeNode::append_child(node, notify); @@ -201,6 +203,8 @@ RefPtr Node::insert_before(NonnullRefPtr node, RefPtr child, b dbgln("FIXME: Trying to insert_before() a bogus child"); return nullptr; } + if (node->parent()) + node->parent()->remove_child(node); if (&node->document() != &document()) document().adopt_node(node); TreeNode::insert_before(node, child, notify);