anchor.diff:  
           FStream.Size := 0;
           { copy temporary archive to the stream }
  -        if FStream.Position <> 0 then
  -          FStream.Position := 0;
  +        
           if (FStream is TAbSpanStream) then
  -           TAbSpanStream(FStream).ArchiveTotalSize := NewStream.Size;     {!!.04}
  -        FStream.CopyFrom(NewStream, NewStream.Size);
  +           TAbSpanStream(FStream).ArchiveTotalSize := NewStream.Size; {!!.04}
  +
  +        FStream.CopyFrom(NewStream, 0);
         except
          on E : Exception do
           begin
  
positive.code:       begin
         //Other archive types we hold the stream for the last file.
         //However, with a split archive we need to free it so we can rename it.
          FStream.Free;
         //Rename .ZIP to Z01
          RenameFile(FArchiveName,ChangeFileExt(FArchiveName,'.Z01'));
  
negative.code:       {append the central directory footer}
        FInfo.DirectorySize := CDHStream.Size;
        FInfo.DiskNumber := SCurrentImage;
        FInfo.SaveToStream(CDHStream);
        
        CDHStream.Position := 0;
        NewStream.CopyFrom( CDHStream, CDHStream.Size );
      finally {CDHStream}
        CDHStream.Free;
      end; {CDHStream}
  