diff --git a/quic/core/http/end_to_end_test.cc b/quic/core/http/end_to_end_test.cc
index 637edcf..a36017c 100644
--- a/quic/core/http/end_to_end_test.cc
+++ b/quic/core/http/end_to_end_test.cc
@@ -2166,10 +2166,17 @@
         client_sent_packet_manager->GetRttStats()->smoothed_rtt().IsInfinite());
     const RttStats* server_rtt_stats =
         server_sent_packet_manager->GetRttStats();
-    EXPECT_EQ(static_cast<int64_t>(kMaxInitialRoundTripTimeUs),
-              server_rtt_stats->initial_rtt().ToMicroseconds());
-    EXPECT_GE(static_cast<int64_t>(kMaxInitialRoundTripTimeUs),
-              server_rtt_stats->smoothed_rtt().ToMicroseconds());
+    if (GetQuicReloadableFlag(quic_cap_large_client_initial_rtt)) {
+      EXPECT_EQ(static_cast<int64_t>(1 * kNumMicrosPerSecond),
+                server_rtt_stats->initial_rtt().ToMicroseconds());
+      EXPECT_GE(static_cast<int64_t>(1 * kNumMicrosPerSecond),
+                server_rtt_stats->smoothed_rtt().ToMicroseconds());
+    } else {
+      EXPECT_EQ(static_cast<int64_t>(kMaxInitialRoundTripTimeUs),
+                server_rtt_stats->initial_rtt().ToMicroseconds());
+      EXPECT_GE(static_cast<int64_t>(kMaxInitialRoundTripTimeUs),
+                server_rtt_stats->smoothed_rtt().ToMicroseconds());
+    }
   } else {
     ADD_FAILURE() << "Missing sent packet manager";
   }
diff --git a/quic/core/quic_sent_packet_manager.cc b/quic/core/quic_sent_packet_manager.cc
index 930b4ed..74a91ea 100644
--- a/quic/core/quic_sent_packet_manager.cc
+++ b/quic/core/quic_sent_packet_manager.cc
@@ -1494,8 +1494,13 @@
 void QuicSentPacketManager::SetInitialRtt(QuicTime::Delta rtt) {
   const QuicTime::Delta min_rtt =
       QuicTime::Delta::FromMicroseconds(kMinInitialRoundTripTimeUs);
-  const QuicTime::Delta max_rtt =
+  QuicTime::Delta max_rtt =
       QuicTime::Delta::FromMicroseconds(kMaxInitialRoundTripTimeUs);
+  if (GetQuicReloadableFlag(quic_cap_large_client_initial_rtt)) {
+    // TODO(fayang): change the value of kMaxInitialRoundTripTimeUs when
+    // deprecating quic_cap_large_client_initial_rtt.
+    max_rtt = QuicTime::Delta::FromSeconds(1);
+  }
   rtt_stats_.set_initial_rtt(std::max(min_rtt, std::min(max_rtt, rtt)));
 }
 
diff --git a/quic/core/quic_sent_packet_manager_test.cc b/quic/core/quic_sent_packet_manager_test.cc
index 29ea106..7448ee5 100644
--- a/quic/core/quic_sent_packet_manager_test.cc
+++ b/quic/core/quic_sent_packet_manager_test.cc
@@ -2195,7 +2195,7 @@
 TEST_F(QuicSentPacketManagerTest, ResumeConnectionState) {
   // The sent packet manager should use the RTT from CachedNetworkParameters if
   // it is provided.
-  const QuicTime::Delta kRtt = QuicTime::Delta::FromMilliseconds(1234);
+  const QuicTime::Delta kRtt = QuicTime::Delta::FromMilliseconds(123);
   CachedNetworkParameters cached_network_params;
   cached_network_params.set_min_rtt_ms(kRtt.ToMilliseconds());
 
