anchor.diff:    SenderRoom: Integer;
   begin
     Assert(aLength >= 1, 'Unexpectedly short message');
  -
  -  Inc(BytesRX, aLength);
   
     M := TKMemoryStream.Create;
     M.WriteBuffer(aData^, aLength);
  
positive.code:   if aRecipient = NET_ADDRESS_ALL then
      //Iterate backwards because sometimes calling Send results in ClientDisconnect (LNet only?)
      for I := fClientList.Count - 1 downto 0 do
        fServer.SendData(fClientList[i].Handle, M.Memory, M.Size)
    else
      fServer.SendData(aRecipient, M.Memory, M.Size);
  
    Inc(BytesTX, M.Size);
    M.Free;
  end;
  
  
  
negative.code:             //Iterate backwards because sometimes calling Send results in ClientDisconnect (LNet only?)
              for i:=fClientList.Count-1 downto 0 do
                  if (aHandle <> fClientList[i].Handle) and (SenderRoom = fClientList[i].Room) then
                    DoSendData(fClientList[i].Handle, @SenderClient.fBuffer[0], PacketLength+12);
          NET_ADDRESS_ALL: //Transmit to all including sender (used mainly by TextMessages)
                  //Iterate backwards because sometimes calling Send results in ClientDisconnect (LNet only?)
                  for i:=fClientList.Count-1 downto 0 do
                    if SenderRoom = fClientList[i].Room then
                      DoSendData(fClientList[i].Handle, @SenderClient.fBuffer[0], PacketLength+12);
          NET_ADDRESS_HOST:
                  if SenderRoom <> -1 then
                    DoSendData(fRoomInfo[SenderRoom].HostHandle, @SenderClient.fBuffer[0], PacketLength+12);
          NET_ADDRESS_SERVER:
                  RecieveMessage(PacketSender, @SenderClient.fBuffer[12], PacketLength);
          else    DoSendData(PacketRecipient, @SenderClient.fBuffer[0], PacketLength+12);
        end;
  
      if 12+PacketLength < SenderClient.fBufferSize then //Check range
  