anchor.diff:    TAbBytes.StrPCopy(@PHeader.uid, AB_TAR_L_HDR_ARR8_0);  { Stuff zeros }
     TAbBytes.StrPCopy(@PHeader.gid, AB_TAR_L_HDR_ARR8_0);  { Stuff zeros }
     tempStr := PadString(IntToOctal(Length(Value)+1), SizeOf(PHeader.Size)); { Stuff Size }
  -  Move(tempStr[1], PHeader.Size, Length(tempStr));
  +  pBytes := TEncoding.ANSI.GetBytes(tempStr);
  +  Move(pBytes[0], PHeader.Size, Length(pBytes));
     TAbBytes.StrPCopy(@PHeader.ModTime, AB_TAR_L_HDR_ARR12_0);  { Stuff zeros }
     { Check sum will be calculated as the Dirty flag is in caller. }
     PHeader.LinkFlag := Ord(LinkFlag);  { Stuff Link FlagSize }
     TAbBytes.StrPCopy(@PHeader.Magic.gnuOld, AB_TAR_MAGIC_GNUOLD); { Stuff the magic }
     TAbBytes.StrPCopy(@PHeader.UsrName, AB_TAR_L_HDR_USR_NAME);
  -  AnsiStrings.StrPCopy(PHeader.GrpName, AB_TAR_L_HDR_GRP_NAME);
  +  TAbBytes.StrPCopy(@PHeader.GrpName, AB_TAR_L_HDR_GRP_NAME);
     { All else stays as Zeros. }
     { Completed with L/K Header }
   
  
positive.code: 
    { Save off the new Length, so we don't have to change the pointers later. }
    tempStr := PadString(IntToOctal(Length(Value)+1), SizeOf(PHeader.Size));
    Move(tempStr[1], PHeader.Size, Length(tempStr));
  
    TotalOldNumHeaders := Ceil(OldNameLength / AB_TAR_RECORDSIZE);
    TotalNewNumHeaders := Ceil((Length(Value)+1) / AB_TAR_RECORDSIZE);{ Null terminated }
  
negative.code: 
    { Finally we need to stuff the file type Header. }
    { Note: Value.length > AB_TAR_NAMESIZE(100) }
    pBytes := TEncoding.ANSI.GetBytes(Value);
    if LinkFlag = AB_TAR_LF_LONGNAME then
      Move(pBytes[0], PHeader.Name, AB_TAR_NAMESIZE)
    else
      Move(pBytes[0], PHeader.LinkName, AB_TAR_NAMESIZE);
  end;
  
  procedure TAbTarItem.SetFileName(const Value: string);
  