diff --git a/modules/rtp_rtcp/source/rtp_rtcp_impl.cc b/modules/rtp_rtcp/source/rtp_rtcp_impl.cc
index 70fe717..469a41e 100644
--- a/modules/rtp_rtcp/source/rtp_rtcp_impl.cc
+++ b/modules/rtp_rtcp/source/rtp_rtcp_impl.cc
@@ -558,14 +558,10 @@
     }
   } else {
     CriticalSectionScoped lock(critical_section_module_ptrs_.get());
-    // Decide what media stream to pad on based on a round-robin scheme.
     for (size_t i = 0; i < child_modules_.size(); ++i) {
-      padding_index_ = (padding_index_ + 1) % child_modules_.size();
       // Send padding on one of the modules sending media.
-      if (child_modules_[padding_index_]->SendingMedia() &&
-          child_modules_[padding_index_]->rtp_sender_.GetTargetBitrate() > 0) {
-        return child_modules_[padding_index_]->rtp_sender_.TimeToSendPadding(
-            bytes);
+      if (child_modules_[i]->SendingMedia()) {
+        return child_modules_[i]->rtp_sender_.TimeToSendPadding(bytes);
       }
     }
   }
diff --git a/modules/rtp_rtcp/source/rtp_rtcp_impl_unittest.cc b/modules/rtp_rtcp/source/rtp_rtcp_impl_unittest.cc
index eb76cfe..eba4e01 100644
--- a/modules/rtp_rtcp/source/rtp_rtcp_impl_unittest.cc
+++ b/modules/rtp_rtcp/source/rtp_rtcp_impl_unittest.cc
@@ -387,7 +387,7 @@
   VideoCodec codec_;
 };
 
-TEST_F(RtpSendingTest, RoundRobinPadding) {
+TEST_F(RtpSendingTest, DISABLED_RoundRobinPadding) {
   // We have to send on an SSRC to be allowed to pad, since a marker bit must
   // be sent prior to padding packets.
   const uint8_t payload[200] = {0};
@@ -409,7 +409,7 @@
   ExpectPadding(expected_padding);
 }
 
-TEST_F(RtpSendingTest, RoundRobinPaddingRtx) {
+TEST_F(RtpSendingTest, DISABLED_RoundRobinPaddingRtx) {
   // Enable RTX to allow padding to be sent prior to media.
   for (int i = 1; i < codec_.numberOfSimulcastStreams + 1; ++i) {
     senders_[i]->SetRtxSendPayloadType(96);
@@ -435,7 +435,7 @@
   ExpectPadding(expected_padding);
 }
 
-TEST_F(RtpSendingTest, RoundRobinPaddingRtxRedundantPayloads) {
+TEST_F(RtpSendingTest, DISABLED_RoundRobinPaddingRtxRedundantPayloads) {
   for (int i = 1; i < codec_.numberOfSimulcastStreams + 1; ++i) {
     senders_[i]->SetRtxSendPayloadType(96);
     senders_[i]->SetRtxSsrc(kSenderRtxSsrc + i);
