                 children.insert(newNode, atIndex: firstNodeIndex)
                 newNode.parent = self
                 
-                remove(newChildren, updateParent: false)
                 return newNode
             }
         }

                let elementsAndIntersections = lowestBlockLevelElements(intersectingRange: targetRange)

                for (element, intersection) in elementsAndIntersections {
                    element.forceWrapChildren(intersectingRange: intersection, inElement: elementDescriptor)
                }
            } else {

                    rightSibling.removeFromParent()
                }
            }

            if let result = result {
                return result
            } else {
