diff --git a/modules/pacing/packet_router.cc b/modules/pacing/packet_router.cc
index 8edfd1f..c280299 100644
--- a/modules/pacing/packet_router.cc
+++ b/modules/pacing/packet_router.cc
@@ -133,7 +133,7 @@
   // With the new pacer code path, transport sequence numbers are only set here,
   // on the pacer thread. Therefore we don't need atomics/synchronization.
   if (packet->IsExtensionReserved<TransportSequenceNumber>()) {
-    packet->SetExtension<TransportSequenceNumber>(AllocateSequenceNumber());
+    packet->SetExtension<TransportSequenceNumber>((++transport_seq_) & 0xFFFF);
   }
 
   uint32_t ssrc = packet->Ssrc();
@@ -190,20 +190,9 @@
   return padding_packets;
 }
 
-void PacketRouter::SetTransportWideSequenceNumber(uint16_t sequence_number) {
-  rtc::CritScope lock(&modules_crit_);
-  transport_seq_ = sequence_number;
-}
-
-uint16_t PacketRouter::AllocateSequenceNumber() {
-  rtc::CritScope lock(&modules_crit_);
-  transport_seq_ = (transport_seq_ + 1) & 0xFFFF;
-  return transport_seq_;
-}
-
 uint16_t PacketRouter::CurrentTransportSequenceNumber() const {
   rtc::CritScope lock(&modules_crit_);
-  return transport_seq_;
+  return transport_seq_ & 0xFFFF;
 }
 
 void PacketRouter::OnReceiveBitrateChanged(const std::vector<uint32_t>& ssrcs,
diff --git a/modules/pacing/packet_router.h b/modules/pacing/packet_router.h
index 1359e04..117d681 100644
--- a/modules/pacing/packet_router.h
+++ b/modules/pacing/packet_router.h
@@ -58,11 +58,6 @@
   virtual std::vector<std::unique_ptr<RtpPacketToSend>> GeneratePadding(
       size_t target_size_bytes);
 
-  // TODO(bugs.webrtc.org/11036): Remove when downstream usage is gone.
-  void SetTransportWideSequenceNumber(uint16_t sequence_number);
-  // TODO(bugs.webrtc.org/11036): Make private when downstream usage is gone.
-  uint16_t AllocateSequenceNumber();
-
   uint16_t CurrentTransportSequenceNumber() const;
 
   // Called every time there is a new bitrate estimate for a receive channel
@@ -129,7 +124,7 @@
   RtcpFeedbackSenderInterface* active_remb_module_
       RTC_GUARDED_BY(modules_crit_);
 
-  int transport_seq_ RTC_GUARDED_BY(modules_crit_);
+  uint64_t transport_seq_ RTC_GUARDED_BY(modules_crit_);
 
   RTC_DISALLOW_COPY_AND_ASSIGN(PacketRouter);
 };
