anchor.diff:    ParentNode : PXMLNode;
     i : integer;
     NewElement : TmXmlElement;
  +  tmp : Tmxml_oxml_PointerShell;
   begin
     ParentNode := (aParent as TImpl_oxml_mXmlElement).FNode;
     if CompareText(aFilter, '') = 0 then
     begin
       for i := 0 to ParentNode^.ChildCount -1 do
       begin
  -      NewElement := TmXmlElement.Create(Tmxml_oxml_PointerShell.Create(ParentNode^.ChildNodes[i]));
  +      tmp := Tmxml_oxml_PointerShell.Create(ParentNode^.ChildNodes[i]);
  +      FGarbage.Add(tmp);
  +      NewElement := TmXmlElement.Create(tmp);
         FList.Add(NewElement);
       end;
     end
  
positive.code:     FXML: IXMLDocument;
      FRoot : PXMLNode;
      FRootElement : TmXmlElement;
    public
      constructor Create; override;
      destructor Destroy; override;
  
negative.code:   TImpl_oxml_mXmlElementCursor = class (TImpl_mXmlElementCursor)
    private
      FList : TObjectList;
      FGarbage : TObjectList;
    public
      constructor Create; override;
      destructor Destroy; override;
  