anchor.diff:  
   procedure TAbTarArchive.SaveArchive;
   var
  -  SR                 : TSearchRec;
     InTarHelp,
     OutTarHelp         : TAbTarStreamHelper;
     Abort              : Boolean;
  
positive.code:               { adding from a stream }
                  CurItem.SaveTarHeaderToStream(NewStream);
                  OutTarHelp.WriteArchiveItem(InStream);
                end else if CurItem.IsDirectory then begin
                
                  DateTime := FindFirst(ExcludeTrailingPathDelimiter(CurItem.DiskFileName), faAnyFile, SR);
                  if (DateTime <> 0) then begin
                      try
                          DateTime := sr.Time;
                          CurItem.UncompressedSize := 0;
                          CurItem.LastModFileTime := LongRec(DateTime).Lo;
                          CurItem.LastModFileDate := LongRec(DateTime).Hi;
                          CurItem.ExternalFileAttributes := AbDOS2UnixFileAttributes(sr.Attr);
                      finally
                          FindClose(SR);
                      end;
                  end;
  
                  CurItem.SaveTarHeaderToStream(NewStream);
                end else begin
                { it's coming from a file }
                  GetDir(0, SaveDir);
  
negative.code: 
    TAbTarArchive = class(TAbArchive)
    protected
      function CreateItem(const FileSpec : string): TAbArchiveItem;
        override;
      procedure ExtractItemAt(Index : Integer; const UseName : string);
        override;
  