anchor.diff:      procedure SendMessageToRoom(aKind: TKMessageKind; aRoom: Integer; aParam: Integer); overload;
       procedure SendMessageToRoom(aKind: TKMessageKind; aRoom: Integer; aStream: TKMemoryStream); overload;
       procedure SendMessageAct(aRecipient: Integer; aKind: TKMessageKind; aStream: TKMemoryStream);
  +    procedure DoSendData(aRecipient: Integer; aData: Pointer; aLength: Cardinal);
       procedure RecieveMessage(aSenderHandle:integer; aData:pointer; aLength:cardinal);
       procedure DataAvailable(aHandle:integer; aData:pointer; aLength:cardinal);
       procedure SaveToStream(aStream: TKMemoryStream);
  
positive.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
                    fServer.SendData(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
                      fServer.SendData(fClientList[i].Handle, @SenderClient.fBuffer[0], PacketLength+12);
          NET_ADDRESS_HOST:
                  if SenderRoom <> -1 then
                    fServer.SendData(fRoomInfo[SenderRoom].HostHandle, @SenderClient.fBuffer[0], PacketLength+12);
          NET_ADDRESS_SERVER:
                  RecieveMessage(PacketSender, @SenderClient.fBuffer[12], PacketLength);
          else    fServer.SendData(PacketRecipient, @SenderClient.fBuffer[0], PacketLength+12);
        end;
  
      if 12+PacketLength < SenderClient.fBufferSize then //Check range
  
negative.code:   SenderRoom: Integer;
  begin
    Assert(aLength >= 1, 'Unexpectedly short message');
  
    M := TKMemoryStream.Create;
    M.WriteBuffer(aData^, aLength);
  