diff --git a/Lidgren.Network/NetConnection.cs b/Lidgren.Network/NetConnection.cs index e314b70..d634671 100644 --- a/Lidgren.Network/NetConnection.cs +++ b/Lidgren.Network/NetConnection.cs @@ -234,8 +234,11 @@ namespace Lidgren.Network { //m_peer.LogVerbose("Received ack for " + acktp + "#" + seqNr); NetSenderChannelBase chan = m_sendChannels[(int)incAck.Item1 - 1]; + + // If we haven't sent a message on this channel there is no reason to ack it if (chan == null) - chan = CreateSenderChannel(incAck.Item1); + continue; + chan.ReceiveAcknowledge(now, incAck.Item2); } } diff --git a/Lidgren.Network/NetReliableSenderChannel.cs b/Lidgren.Network/NetReliableSenderChannel.cs index ade2e9d..7fe4d6c 100644 --- a/Lidgren.Network/NetReliableSenderChannel.cs +++ b/Lidgren.Network/NetReliableSenderChannel.cs @@ -138,8 +138,7 @@ namespace Lidgren.Network if (storedMessage != null) { #endif - Interlocked.Decrement(ref storedMessage.m_recyclingCount); - if (storedMessage.m_recyclingCount <= 0) + if (Interlocked.Decrement(ref storedMessage.m_recyclingCount) <= 0) m_connection.m_peer.Recycle(storedMessage); #if !DEBUG