diff --git a/src/MonoTorrent/MonoTorrent.Client/Managers/ConnectionManager.cs b/src/MonoTorrent/MonoTorrent.Client/Managers/ConnectionManager.cs index caa8c10e8..ff545b968 100644 --- a/src/MonoTorrent/MonoTorrent.Client/Managers/ConnectionManager.cs +++ b/src/MonoTorrent/MonoTorrent.Client/Managers/ConnectionManager.cs @@ -358,12 +358,15 @@ private void SendMessage(PeerId id, PeerMessage message, MessagingCallback callb id.CurrentlySendingMessage = message; RateLimiterGroup limiter = id.TorrentManager.UploadLimiter; - PeerIO.EnqueueSendMessage (id.Connection, id.Encryptor, message, limiter, id.Monitor, id.TorrentManager.Monitor, endSendMessageCallback, id); + if (message is PieceMessage) { + PeerIO.EnqueueSendMessage (id.Connection, id.Encryptor, message, limiter, id.Monitor, id.TorrentManager.Monitor, endSendMessageCallback, id); ClientEngine.BufferManager.FreeBuffer(ref ((PieceMessage)message).Data); id.IsRequestingPiecesCount--; } + else + PeerIO.EnqueueSendMessage (id.Connection, id.Encryptor, message, null, id.Monitor, id.TorrentManager.Monitor, endSendMessageCallback, id); } catch (Exception ex) {