anchor.diff:    s: string;
   begin
     { TODO: if data was HTML, we must strip all tags - regex will make this easy }
  -  for i := 0 to FDataList.Count-1 do
  -  begin
  -    if TfpgMimeDataStruct(FDataList[i]).format = 'text/html' then
  -    begin
  -      s := TfpgMimeDataStruct(FDataList[i]).data;
  +  for i := 0 to Count-1 do
  +  begin
  +    if Items[i].format = 'text/html' then
  +    begin
  +      s := Items[i].data;
         Result := s;
         break;
       end;
  
positive.code:   FTagPointer   := nil;
  end;
  
  { TfpgMimeDataStruct }
  
  constructor TfpgMimeDataStruct.Create(const AFormat: TfpgString; const AData: variant);
  begin
    inherited Create;
    format := AFormat;
  
negative.code: procedure TfpgMimeDataBase.SetHTML(const AValue: TfpgString);
  var
    i: integer;
    r: TfpgMimeDataItem;
  begin
    { remove existing 'text/html' first }
    for i := Count-1 downto 0 do
    begin
      r := Items[i];
      if r.format = 'text/html' then
      begin
        FDataList.Remove(r);
        break;
      end;
    end;
    { now add new structure }
    r := TfpgMimeDataItem.Create('text/html', AValue);
    FDataList.Add(r);
  end;
  
  function TfpgMimeDataBase.GetCount: integer;
  begin
    Result := FDataList.Count;
  end;
  