anchor.diff:    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)
  +      DoSendData(fClientList[i].Handle, M.Memory, M.Size)
     else
  -    fServer.SendData(aRecipient, M.Memory, M.Size);
  -
  -  Inc(BytesTX, M.Size);
  +    DoSendData(aRecipient, M.Memory, M.Size);
  +
     M.Free;
  +end;
  +
  +
  +//Wrapper around fServer.SendData so we can count TX bytes (don't use fServer.SendData anywhere else)
  +procedure TKMNetServer.DoSendData(aRecipient: Integer; aData: Pointer; aLength: Cardinal);
  +begin
  +  Inc(BytesTX, aLength);
  +  fServer.SendData(aRecipient, aData, aLength);
   end;
   
   
  
positive.code:   SenderRoom: Integer;
  begin
    Assert(aLength >= 1, 'Unexpectedly short message');
  
    Inc(BytesRX, aLength);
  
    M := TKMemoryStream.Create;
    M.WriteBuffer(aData^, aLength);
  
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
  