diff --git a/modules/video_coding/frame_buffer2.cc b/modules/video_coding/frame_buffer2.cc
index 6dae6f4..bbbe76d 100644
--- a/modules/video_coding/frame_buffer2.cc
+++ b/modules/video_coding/frame_buffer2.cc
@@ -65,8 +65,6 @@
       protection_mode_(kProtectionNack),
       stats_callback_(stats_callback),
       last_log_non_decoded_ms_(-kLogNonDecodedIntervalMs),
-      add_rtt_to_playout_delay_(
-          webrtc::field_trial::IsEnabled("WebRTC-AddRttToPlayoutDelay")),
       rtt_mult_settings_(RttMultExperiment::GetRttMultValue()),
       zero_playout_delay_max_decode_queue_size_(
           "max_decode_queue_size",
@@ -309,7 +307,7 @@
         jitter_estimator_.GetJitterEstimate(rtt_mult, rtt_mult_add_cap_ms));
     timing_->UpdateCurrentDelay(render_time_ms, now_ms);
   } else {
-    if (RttMultExperiment::RttMultEnabled() || add_rtt_to_playout_delay_)
+    if (RttMultExperiment::RttMultEnabled())
       jitter_estimator_.FrameNacked();
   }
 
diff --git a/modules/video_coding/frame_buffer2.h b/modules/video_coding/frame_buffer2.h
index d46bb9a..c2a3394 100644
--- a/modules/video_coding/frame_buffer2.h
+++ b/modules/video_coding/frame_buffer2.h
@@ -185,8 +185,6 @@
   VCMReceiveStatisticsCallback* const stats_callback_;
   int64_t last_log_non_decoded_ms_ RTC_GUARDED_BY(mutex_);
 
-  const bool add_rtt_to_playout_delay_;
-
   // rtt_mult experiment settings.
   const absl::optional<RttMultExperiment::Settings> rtt_mult_settings_;
 
diff --git a/modules/video_coding/frame_buffer2_unittest.cc b/modules/video_coding/frame_buffer2_unittest.cc
index f2a0589..129c25f 100644
--- a/modules/video_coding/frame_buffer2_unittest.cc
+++ b/modules/video_coding/frame_buffer2_unittest.cc
@@ -140,8 +140,7 @@
   static constexpr size_t kFrameSize = 10;
 
   TestFrameBuffer2()
-      : trial_("WebRTC-AddRttToPlayoutDelay/Enabled/"),
-        time_controller_(Timestamp::Seconds(0)),
+      : time_controller_(Timestamp::Seconds(0)),
         time_task_queue_(
             time_controller_.GetTaskQueueFactory()->CreateTaskQueue(
                 "extract queue",
@@ -232,8 +231,6 @@
 
   uint32_t Rand() { return rand_.Rand<uint32_t>(); }
 
-  // The ProtectionMode tests depends on rtt-multiplier experiment.
-  test::ScopedFieldTrials trial_;
   webrtc::GlobalSimulatedTimeController time_controller_;
   rtc::TaskQueue time_task_queue_;
   VCMTimingFake timing_;
@@ -459,28 +456,6 @@
   EXPECT_LT(timing_.GetCurrentJitter(), kRttMs);
 }
 
-TEST_F(TestFrameBuffer2, ProtectionModeNack) {
-  uint16_t pid = Rand();
-  uint32_t ts = Rand();
-  constexpr int64_t kRttMs = 200;
-
-  buffer_->UpdateRtt(kRttMs);
-
-  // Jitter estimate includes RTT (after 3 retransmitted packets)
-  buffer_->SetProtectionMode(kProtectionNack);
-  InsertNackedFrame(pid, ts);
-  InsertNackedFrame(pid + 1, ts + 100);
-  InsertNackedFrame(pid + 2, ts + 200);
-  InsertFrame(pid + 3, 0, ts + 300, true, kFrameSize);
-  ExtractFrame();
-  ExtractFrame();
-  ExtractFrame();
-  ExtractFrame();
-  ASSERT_EQ(4u, frames_.size());
-
-  EXPECT_GT(timing_.GetCurrentJitter(), kRttMs);
-}
-
 TEST_F(TestFrameBuffer2, NoContinuousFrame) {
   uint16_t pid = Rand();
   uint32_t ts = Rand();
