diff --git a/src/peer_connection.cpp b/src/peer_connection.cpp index 41663c403..aed723113 100644 --- a/src/peer_connection.cpp +++ b/src/peer_connection.cpp @@ -4751,7 +4751,7 @@ namespace libtorrent { if (m_disconnecting) return; - if (m_channel_state[upload_channel] & (peer_info::bw_network | peer_info::bw_limit)) return; + if (m_channel_state[upload_channel] & peer_info::bw_network) return; shared_ptr t = m_torrent.lock(); @@ -4830,6 +4830,12 @@ namespace libtorrent } } } + else + { + if (m_channel_state[upload_channel] & peer_info::bw_disk) + m_ses.dec_disk_queue(upload_channel); + m_channel_state[upload_channel] &= ~peer_info::bw_disk; + } if (!can_write()) {