anchor.diff:        FTarHeaderTypeList.Add(Pointer(UNKNOWN_HEADER));
       end;{ end LinkFlag parsing }
     end; { end Found Item While }
  -  PTarHeader := PHeader; { Points to FTarHeaderList.Items[FTarHeaderList.Count-1]; }
  +  { PTarHeader points to FTarHeaderList.Items[FTarHeaderList.Count-1]; }
   
     { Re-wind the Stream back to the begining of this Item inc. all headers }
     AStream.Seek(-(FTarHeaderList.Count*AB_TAR_RECORDSIZE), soFromCurrent);
  
positive.code: procedure TAbTarItem.SetUserID(const Value: Integer);
  var
    S : AnsiString;
  //  I: Integer;
  begin
    if FTarItem.ItemReadOnly then { Read Only - Do Not Save }
      Exit;
    { uid is extendable in PAX Headers, Rember PAX extended Header Over Rule File Headers }
    FTarItem.uid := Value;
    S := PadString(IntToOctal(Value), SizeOf(Arr8));
    Move(S[1], PTarHeader.uid, Length(S));
  //  for I := 0 to FTarHeaderList.Count - 1 do
  //    if HeaderType(FTarHeaderTypeList.Items[I]) in [FILE_HEADER, META_DATA_HEADER] then
  //      Move(S[1], PAbTarHeaderRec(FTarHeaderList.Items[I]).uid, Length(S));
    FTarItem.Dirty := True;
  end;
  
  
negative.code:             { These two fields are delimted by a '/' char }
              {0123456789012345, Length = 15, NameLength = 5, PrefixLength = 9}
              { AAAA/BBBB/C.txt, Stored as Name := 'C.txt', Prefix := 'AAAA/BBBB' }
              { That means Theoretical maximum is 256 for Length(SysValue) }
              if Length(SysValue) > (AB_TAR_NAMESIZE+AB_TAR_USTAR_PREFIX_SIZE+1) then { Check the obvious one. }
                raise EAbTarBadFileName.Create; { File Name to Long }
              for I := Length(SysValue) downto Length(SysValue)-AB_TAR_NAMESIZE-1 do begin
                if SysValue[I] = '/' then begin
                  if (I <= AB_TAR_USTAR_PREFIX_SIZE+1) and (Length(SysValue)-I <= AB_TAR_NAMESIZE) then begin
                    { We have a successfull parse. }
                    FillChar(PTarHeader.Name, SizeOf(PTarHeader.Name), #0);
                    FillChar(PTarHeader.ustar.Prefix, SizeOf(PTarHeader.ustar.Prefix), #0);
                    Move(SysValue[I+1], PTarHeader.Name, Length(SysValue)-I);
                    Move(SysValue[1], PTarHeader.ustar.Prefix, I);
                    break;
                  end
                  else if (Length(SysValue)-I > AB_TAR_NAMESIZE) then
                    raise EAbTarBadFileName.Create { File Name not splittable }
                  { else continue; }
                end;
              end;{ End for I... }
            end; { End USTAR Format }
          OLDGNU_FORMAT: DoGNUNewLongNameLink(AB_TAR_LF_LONGNAME, 0, SysValue); {GNU_FORMAT}
          else begin
            { UNKNOWN_FORMAT, STAR_FORMAT, POSIX_FORMAT }
            raise EAbTarBadOp.Create; { Unknown Archive Format }
  