anchor.diff:      (clean node mode))
   
     (unless (element-allowed-p mode tagname)
  -    (let ((fragment (xtree:make-document-fragment)))
  +    (let ((w (whitespace-element-p mode tagname)))
  +      (when w
  +        (xtree:insert-child-before (xtree:make-text " ") element))
  +
         (dolist (node (xtree:all-childs element))
  -        (xtree:append-child fragment
  -                            (xtree:detach node)))
  +        (xtree:insert-child-before (xtree:detach node) element))
         
  -      (when (whitespace-element-p mode tagname)
  -        (xtree:prepend-child fragment
  -                             (xtree:make-text " "))
  -        (xtree:append-child fragment
  -                            (xtree:make-text " ")))
  +      (when w
  +        (xtree:insert-child-before (xtree:make-text " ") element))
         
  -      (xtree:replace-child element fragment)
  -      (return-from clean-element fragment)))
  +      (xtree:remove-child element)
  +      (return-from clean-element)))
       
     (dolist (attr (xtree:all-attribute-nodes element))
       (unless (attribute-allowed-p mode tagname (xtree:local-name attr))
  
positive.code:      (dolist (item (xtree:all-childs node))
         (clean item mode)))
      (:xml-text-node node)
      (:xml-comment-node
       (cond
         ((mode-allow-comments mode) node)
  
negative.code:     (:xml-element-node
       (clean-element node mode))
      (otherwise
       (print (xtree:node-type node))
       (print (xtree:text-content node))
       (xtree:remove-child node))))
  
  (defun clean-element (element mode
  