anchor.diff:  
   procedure TAbGzipArchive.LoadArchive;
   var
  -  GzHelp       : TAbGzipStreamHelper;
  -  Item         : TAbGzipItem;
  -  ItemFound    : Boolean;
  -  Abort        : Boolean;
  -  TotalEntries : Integer;
  -  i            : Integer;
  -  Progress     : Byte;
  -begin
  -  if FGzStream.Size = 0 then
  -    Exit;
  -
  -  if IsGzippedTar and TarAutoHandle then begin
  -    { extract Tar and set stream up }
  -
  +  GzHelp : TAbGzipStreamHelper;
  +  Item   : TAbGzipItem;
  +  Abort  : Boolean;
  +begin
  +  SwapToGzip;
  +  if FGzStream.Size > 0 then begin
       GzHelp := TAbGzipStreamHelper.Create(FGzStream);
       try
  -      if not FTarLoaded then begin
  -        GzHelp.SeekToItemData;
  -        GzHelp.ExtractItemData(FTarStream);
  -        SwapToTar;
  -        inherited LoadArchive;
  -        FTarLoaded := True;
  -      end;
  -    finally
  -      GzHelp.Free;
  -    end;
  -  end
  -  else begin
  -    SwapToGzip;
  -
  -    { create helper }
  -    GzHelp := TAbGzipStreamHelper.Create(FGzStream);
  -    try
  -      TotalEntries := GzHelp.GetItemCount;
  -
  -      {build Items list from tar header records}
  -      i := 0;
  -
  -      { reset Tar }
  -      ItemFound := GzHelp.FindFirstItem;
  -
  -      { while more data in Tar }
  -
  -      if ItemFound then begin
  +      if GzHelp.FindFirstItem then begin
           Item := TAbGzipItem.Create;
           Item.LoadGzHeaderFromStream(FGzStream);
  -
           FGzStream.Seek(-SizeOf(TAbGzTailRec), soFromEnd);
           GZHelp.ReadTail;
           Item.CRC32 := GZHelp.TailCRC;
           Item.UncompressedSize := GZHelp.TailSize;
   
           Item.Action := aaNone;
  -        FItemList.Clear;
  -        FItemList.Add(Item);
  -        Inc(i);
  -
  -        { show progress and allow for aborting }
  -        Progress := (i * 100) div TotalEntries;
  -        DoArchiveProgress(Progress, Abort);
  -        if Abort then begin
  -          FStatus := asInvalid;
  -          raise EAbUserAbort.Create;
  +        FGZItem.Add(Item);
  +
  +        if IsGzippedTar and TarAutoHandle then begin
  +          { extract Tar and set stream up }
  +          GzHelp.SeekToItemData;
  +          GzHelp.ExtractItemData(FTarStream);
  +          SwapToTar;
  +          inherited LoadArchive;
           end;
  -
  -        { get the next item }
         end;
   
         DoArchiveProgress(100, Abort);
  
positive.code:         ItemList[i].Action := aaNone;
      end;
  
      DoArchiveSaveProgress( 100, Abort );                               {!!.04}
      DoArchiveProgress( 100, Abort );
    finally {NewStream}
      WorkingStream.Free;
      OutGzHelp.Free;
      NewStream.Free;
    end;
  
negative.code:     FTarStream : TStream;        { stream for possible contained Tar }
      FTarList   : TAbArchiveList; { items in possible contained Tar }
      FTarAutoHandle: Boolean;
      FState     : TAbGzipArchiveState;
      FIsGzippedTar : Boolean;
  
  