diff --git a/audio/channel_send.cc b/audio/channel_send.cc
index 37a14b7..6fd2161 100644
--- a/audio/channel_send.cc
+++ b/audio/channel_send.cc
@@ -502,8 +502,6 @@
   configuration.rtcp_packet_type_counter_observer = this;
 
   configuration.local_media_ssrc = ssrc;
-  configuration.use_deferred_sequencing =
-      !field_trial::IsDisabled("WebRTC-Audio-DeferredSequencing");
 
   rtp_rtcp_ = ModuleRtpRtcpImpl2::Create(configuration);
   rtp_rtcp_->SetSendingMediaStatus(false);
diff --git a/call/rtp_video_sender.cc b/call/rtp_video_sender.cc
index f95c743..b778563 100644
--- a/call/rtp_video_sender.cc
+++ b/call/rtp_video_sender.cc
@@ -231,8 +231,6 @@
       crypto_options.sframe.require_frame_encryption;
   configuration.extmap_allow_mixed = rtp_config.extmap_allow_mixed;
   configuration.rtcp_report_interval_ms = rtcp_report_interval_ms;
-  configuration.use_deferred_sequencing = !absl::StartsWith(
-      trials.Lookup("WebRTC-Video-DeferredSequencing"), "Disabled");
   configuration.field_trials = &trials;
 
   std::vector<RtpStreamSender> rtp_streams;
diff --git a/modules/rtp_rtcp/source/rtp_rtcp_interface.h b/modules/rtp_rtcp/source/rtp_rtcp_interface.h
index c1a44fa..df5593c 100644
--- a/modules/rtp_rtcp/source/rtp_rtcp_interface.h
+++ b/modules/rtp_rtcp/source/rtp_rtcp_interface.h
@@ -146,10 +146,6 @@
     // https://tools.ietf.org/html/rfc3611#section-4.4 and #section-4.5
     bool non_sender_rtt_measurement = false;
 
-    // If true, sequence numbers are not assigned until after the pacer stage,
-    // in RtpSenderEgress.
-    bool use_deferred_sequencing = false;
-
    private:
     RTC_DISALLOW_COPY_AND_ASSIGN(Configuration);
   };
diff --git a/modules/rtp_rtcp/source/rtp_sender_egress.cc b/modules/rtp_rtcp/source/rtp_sender_egress.cc
index f2a74e1..89c5597 100644
--- a/modules/rtp_rtcp/source/rtp_sender_egress.cc
+++ b/modules/rtp_rtcp/source/rtp_sender_egress.cc
@@ -86,7 +86,6 @@
           !IsTrialSetTo(config.field_trials,
                         "WebRTC-SendSideBwe-WithOverhead",
                         "Disabled")),
-      deferred_sequencing_(config.use_deferred_sequencing),
       clock_(config.clock),
       packet_history_(packet_history),
       transport_(config.outgoing_transport),
@@ -134,23 +133,19 @@
   RTC_DCHECK_RUN_ON(&pacer_checker_);
   RTC_DCHECK(packet);
 
-  if (deferred_sequencing_) {
-    // Strict increasing of sequence numbers can only be guaranteed with
-    // deferred sequencing due to raciness with the pacer.
-    if (packet->Ssrc() == ssrc_ &&
-        packet->packet_type() != RtpPacketMediaType::kRetransmission) {
-      if (last_sent_seq_.has_value()) {
-        RTC_DCHECK_EQ(static_cast<uint16_t>(*last_sent_seq_ + 1),
-                      packet->SequenceNumber());
-      }
-      last_sent_seq_ = packet->SequenceNumber();
-    } else if (packet->Ssrc() == rtx_ssrc_) {
-      if (last_sent_rtx_seq_.has_value()) {
-        RTC_DCHECK_EQ(static_cast<uint16_t>(*last_sent_rtx_seq_ + 1),
-                      packet->SequenceNumber());
-      }
-      last_sent_rtx_seq_ = packet->SequenceNumber();
+  if (packet->Ssrc() == ssrc_ &&
+      packet->packet_type() != RtpPacketMediaType::kRetransmission) {
+    if (last_sent_seq_.has_value()) {
+      RTC_DCHECK_EQ(static_cast<uint16_t>(*last_sent_seq_ + 1),
+                    packet->SequenceNumber());
     }
+    last_sent_seq_ = packet->SequenceNumber();
+  } else if (packet->Ssrc() == rtx_ssrc_) {
+    if (last_sent_rtx_seq_.has_value()) {
+      RTC_DCHECK_EQ(static_cast<uint16_t>(*last_sent_rtx_seq_ + 1),
+                    packet->SequenceNumber());
+    }
+    last_sent_rtx_seq_ = packet->SequenceNumber();
   }
 
   RTC_DCHECK(packet->packet_type().has_value());
diff --git a/modules/rtp_rtcp/source/rtp_sender_egress.h b/modules/rtp_rtcp/source/rtp_sender_egress.h
index bf9076d..1fd7128 100644
--- a/modules/rtp_rtcp/source/rtp_sender_egress.h
+++ b/modules/rtp_rtcp/source/rtp_sender_egress.h
@@ -134,7 +134,6 @@
   const absl::optional<uint32_t> flexfec_ssrc_;
   const bool populate_network2_timestamp_;
   const bool send_side_bwe_with_overhead_;
-  const bool deferred_sequencing_;
   Clock* const clock_;
   RtpPacketHistory* const packet_history_;
   Transport* const transport_;
diff --git a/modules/rtp_rtcp/source/rtp_sender_egress_unittest.cc b/modules/rtp_rtcp/source/rtp_sender_egress_unittest.cc
index 4f3990c..d95a639 100644
--- a/modules/rtp_rtcp/source/rtp_sender_egress_unittest.cc
+++ b/modules/rtp_rtcp/source/rtp_sender_egress_unittest.cc
@@ -587,6 +587,7 @@
   // Send a media packet.
   std::unique_ptr<RtpPacketToSend> media_packet = BuildRtpPacket();
   media_packet->SetPayloadSize(6);
+  media_packet->SetSequenceNumber(kStartSequenceNumber);
   expected_transmitted_counter.packets += 1;
   expected_transmitted_counter.payload_bytes += media_packet->payload_size();
   expected_transmitted_counter.header_bytes += media_packet->headers_size();
@@ -606,8 +607,9 @@
   // and retransmitted packet statistics.
   std::unique_ptr<RtpPacketToSend> retransmission_packet = BuildRtpPacket();
   retransmission_packet->set_packet_type(RtpPacketMediaType::kRetransmission);
+  retransmission_packet->SetSequenceNumber(kStartSequenceNumber);
   retransmission_packet->set_retransmitted_sequence_number(
-      retransmission_packet->SequenceNumber());
+      kStartSequenceNumber);
   media_packet->SetPayloadSize(7);
   expected_transmitted_counter.packets += 1;
   expected_transmitted_counter.payload_bytes +=
@@ -636,6 +638,7 @@
   std::unique_ptr<RtpPacketToSend> padding_packet = BuildRtpPacket();
   padding_packet->set_packet_type(RtpPacketMediaType::kPadding);
   padding_packet->SetPadding(224);
+  padding_packet->SetSequenceNumber(kStartSequenceNumber + 1);
   expected_transmitted_counter.packets += 1;
   expected_transmitted_counter.padding_bytes += padding_packet->padding_size();
   expected_transmitted_counter.header_bytes += padding_packet->headers_size();
