diff --git a/quic/core/quic_flags_list.h b/quic/core/quic_flags_list.h
index 4ddf2d8..5bebbe3 100644
--- a/quic/core/quic_flags_list.h
+++ b/quic/core/quic_flags_list.h
@@ -73,7 +73,7 @@
 QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_testonly_default_true, true)
 QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_tls_use_early_select_cert, false)
 QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_unified_iw_options, false)
-QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_use_circular_deque_for_unacked_packets, false)
+QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_use_circular_deque_for_unacked_packets_v2, false)
 QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_use_encryption_level_context, false)
 QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_use_fast_huffman_encoder, true)
 QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_use_write_or_buffer_data_at_level, false)
diff --git a/quic/core/quic_sent_packet_manager.cc b/quic/core/quic_sent_packet_manager.cc
index fba8b67..21a9626 100644
--- a/quic/core/quic_sent_packet_manager.cc
+++ b/quic/core/quic_sent_packet_manager.cc
@@ -671,7 +671,17 @@
     // applications may want to use higher priority stream data for bandwidth
     // probing, and some applications want to consider RTO is an indication of
     // loss, etc.
-    unacked_packets_.RetransmitFrames(*transmission_info, transmission_type);
+    // transmission_info owning these frames may be deallocated after each
+    // retransimission. Make a copy of retransmissible frames to prevent the
+    // invalidation.
+    if (unacked_packets_.use_circular_deque()) {
+      unacked_packets_.RetransmitFrames(
+          QuicFrames(transmission_info->retransmittable_frames),
+          transmission_type);
+    } else {
+      unacked_packets_.RetransmitFrames(
+          transmission_info->retransmittable_frames, transmission_type);
+    }
     return;
   }
 
diff --git a/quic/core/quic_unacked_packet_map.cc b/quic/core/quic_unacked_packet_map.cc
index 852a0df..2ad31b5 100644
--- a/quic/core/quic_unacked_packet_map.cc
+++ b/quic/core/quic_unacked_packet_map.cc
@@ -124,7 +124,7 @@
       session_notifier_(nullptr),
       supports_multiple_packet_number_spaces_(false) {
   if (use_circular_deque_) {
-    QUIC_RELOADABLE_FLAG_COUNT(quic_use_circular_deque_for_unacked_packets);
+    QUIC_RELOADABLE_FLAG_COUNT(quic_use_circular_deque_for_unacked_packets_v2);
   }
 }
 
@@ -474,9 +474,9 @@
   }
 }
 
-void QuicUnackedPacketMap::RetransmitFrames(const QuicTransmissionInfo& info,
+void QuicUnackedPacketMap::RetransmitFrames(const QuicFrames& frames,
                                             TransmissionType type) {
-  session_notifier_->RetransmitFrames(info.retransmittable_frames, type);
+  session_notifier_->RetransmitFrames(frames, type);
 }
 
 void QuicUnackedPacketMap::MaybeAggregateAckedStreamFrame(
diff --git a/quic/core/quic_unacked_packet_map.h b/quic/core/quic_unacked_packet_map.h
index 137d3f8..33b7bba 100644
--- a/quic/core/quic_unacked_packet_map.h
+++ b/quic/core/quic_unacked_packet_map.h
@@ -59,10 +59,8 @@
   void NotifyFramesLost(const QuicTransmissionInfo& info,
                         TransmissionType type);
 
-  // Notifies session_notifier to retransmit frames in |info| with
-  // |transmission_type|.
-  void RetransmitFrames(const QuicTransmissionInfo& info,
-                        TransmissionType type);
+  // Notifies session_notifier to retransmit frames with |transmission_type|.
+  void RetransmitFrames(const QuicFrames& frames, TransmissionType type);
 
   // Marks |info| as no longer in flight.
   void RemoveFromInFlight(QuicTransmissionInfo* info);
@@ -333,7 +331,7 @@
   friend class test::QuicUnackedPacketMapPeer;
 
   // TODO(haoyuewang) Remove these methods when deprecate
-  // quic_use_circular_deque_for_unacked_packets flag.
+  // quic_use_circular_deque_for_unacked_packets_v2 flag.
   size_t unacked_packets_size() const {
     return use_circular_deque_ ? unacked_packets_.size()
                                : unacked_packets_deque_.size();
@@ -433,7 +431,7 @@
   std::deque<QuicTransmissionInfo> unacked_packets_deque_;
 
   const bool use_circular_deque_ =
-      GetQuicReloadableFlag(quic_use_circular_deque_for_unacked_packets);
+      GetQuicReloadableFlag(quic_use_circular_deque_for_unacked_packets_v2);
 
   // The packet at the 0th index of unacked_packets_.
   QuicPacketNumber least_unacked_;
diff --git a/quic/core/quic_unacked_packet_map_test.cc b/quic/core/quic_unacked_packet_map_test.cc
index 4b598be..f2f8b8e 100644
--- a/quic/core/quic_unacked_packet_map_test.cc
+++ b/quic/core/quic_unacked_packet_map_test.cc
@@ -658,7 +658,7 @@
 }
 
 TEST_P(QuicUnackedPacketMapTest, ReserveInitialCapacityTest) {
-  SetQuicReloadableFlag(quic_use_circular_deque_for_unacked_packets, true);
+  SetQuicReloadableFlag(quic_use_circular_deque_for_unacked_packets_v2, true);
   QuicUnackedPacketMap unacked_packets(GetParam());
   ASSERT_EQ(QuicUnackedPacketMapPeer::GetCapacity(unacked_packets), 0u);
   unacked_packets.ReserveInitialCapacity(16);
