anchor.diff:    if aServerClient.fScheduledPacketsCnt > 0 then
     begin
       GetMem(P, aServerClient.fScheduledPacketsSize + 1);
  +    GetMem(P, aServerClient.fScheduledPacketsSize + 1); //+1 byte for packets number
       try
  +      //packets size into 1st byte
         PByte(P)^ := aServerClient.fScheduledPacketsCnt;
   
         Move(aServerClient.fScheduledPackets[0], Pointer(Cardinal(P) + 1)^, aServerClient.fScheduledPacketsSize);
   
  +      //Copy collected packets data with 1 byte shift
         DoSendData(aServerClient.fHandle, P, aServerClient.fScheduledPacketsSize + 1);
         aServerClient.ClearScheduledPackets;
       finally
  
positive.code:   if SenderClient = nil then Exit;
  
    if (SenderClient.fScheduledPacketsSize + aLength > MAX_CUMULATIVE_PACKET_SIZE)
      or (SenderClient.fScheduledPacketsCnt = 255) then
    begin
      //gLog.AddTime(Format('@@@ FLUSH fScheduledPacketsSize + aLength = %d > %d', [SenderClient.fScheduledPacketsSize + aLength, MAX_CUMULATIVE_PACKET_SIZE]));
      SendScheduledData(SenderClient);
  
negative.code:     fTimer.Enabled  := True;
    {$ELSE}
      fTimer := TFPTimer.Create(nil);
      fTimer.OnTimer  := UpdateState;
      fTimer.Interval := fPacketsAccumulatingDelay;
      fTimer.Enabled  := True;
      fTimer.StartTimer;
    {$ENDIF}
  end;
  