diff --git a/src/PeerInteractionCommand.cc b/src/PeerInteractionCommand.cc index cfcd5d4d..b10fb3ce 100644 --- a/src/PeerInteractionCommand.cc +++ b/src/PeerInteractionCommand.cc @@ -360,8 +360,12 @@ bool PeerInteractionCommand::executeInternal() break; } } - if (btInteractive_->countPendingMessage() > 0 || - btInteractive_->isSendingMessageInProgress()) { + if ((btInteractive_->countPendingMessage() > 0 || + btInteractive_->isSendingMessageInProgress()) && + !getDownloadEngine() + ->getRequestGroupMan() + ->doesOverallUploadSpeedExceed() && + !requestGroup_->doesUploadSpeedExceed()) { setWriteCheckSocket(getSocket()); } else {