anchor.diff:    Len := OctalToInt(FTarHeader.Size, sizeof(FTarHeader.Size));
   
     { locate start of stored data }
  -  FStream.Seek(SizeOf(TAbTarHeaderRec), soFromCurrent);
  +  FStream.Seek(SizeOf(TAbTarHeaderRec), soCurrent);
   
     { copy stored data to output }
     if Len <> 0 then
       AStream.CopyFrom(FStream, Len);
   
     {reset the stream to the start of the item}
  -  FStream.Seek(-(SizeOf(TAbTarHeaderRec) + Len), soFromCurrent);
  +  FStream.Seek(-(SizeOf(TAbTarHeaderRec) + Len), soCurrent);
   end;
   
   
  
positive.code: 
  procedure TAbTarArchive.SaveArchive;
  var
    InTarHelp,
    OutTarHelp         : TAbTarStreamHelper;
    Abort              : Boolean;
  
negative.code:   Len := RoundToTarBlock(OctalToInt(FTarHeader.Size, sizeof(FTarHeader.Size)));
  
    { seek past file to next header }
    FStream.Seek(AB_TAR_RECORDSIZE + Len, soCurrent);
    DataRead := FStream.Read(FTarHeader, SizeOf(TAbTarHeaderRec));
  
    while (DataRead = SizeOf(TAbTarHeaderRec)) and (StrLen(FTarHeader.Name) > 0) and
  