diff --git a/quic/core/quic_session.cc b/quic/core/quic_session.cc
index 83792db..2e12f5b 100644
--- a/quic/core/quic_session.cc
+++ b/quic/core/quic_session.cc
@@ -1628,11 +1628,7 @@
 
 void QuicSession::set_largest_peer_created_stream_id(
     QuicStreamId largest_peer_created_stream_id) {
-  if (VersionHasIetfQuicFrames(transport_version())) {
-    v99_streamid_manager_.SetLargestPeerCreatedStreamId(
-        largest_peer_created_stream_id);
-    return;
-  }
+  DCHECK(!VersionHasIetfQuicFrames(transport_version()));
   stream_id_manager_.set_largest_peer_created_stream_id(
       largest_peer_created_stream_id);
 }
diff --git a/quic/core/quic_stream_id_manager.cc b/quic/core/quic_stream_id_manager.cc
index a2d1bad..946bc9a 100644
--- a/quic/core/quic_stream_id_manager.cc
+++ b/quic/core/quic_stream_id_manager.cc
@@ -120,8 +120,7 @@
   }
   incoming_actual_max_streams_ = new_max;
   incoming_advertised_max_streams_ = new_max;
-  incoming_initial_max_open_streams_ =
-      std::min(max_open_streams, implementation_max);
+  incoming_initial_max_open_streams_ = new_max;
   CalculateIncomingMaxStreamsWindow();
 }
 
diff --git a/quic/core/quic_stream_id_manager.h b/quic/core/quic_stream_id_manager.h
index 15b19d3..74d9c6f 100644
--- a/quic/core/quic_stream_id_manager.h
+++ b/quic/core/quic_stream_id_manager.h
@@ -146,11 +146,6 @@
   // Number of streams that the peer believes that it can still create.
   QuicStreamCount available_incoming_streams();
 
-  void set_largest_peer_created_stream_id(
-      QuicStreamId largest_peer_created_stream_id) {
-    largest_peer_created_stream_id_ = largest_peer_created_stream_id;
-  }
-
   QuicStreamId largest_peer_created_stream_id() const {
     return largest_peer_created_stream_id_;
   }
diff --git a/quic/core/uber_quic_stream_id_manager.cc b/quic/core/uber_quic_stream_id_manager.cc
index 27b8873..50e4d02 100644
--- a/quic/core/uber_quic_stream_id_manager.cc
+++ b/quic/core/uber_quic_stream_id_manager.cc
@@ -121,17 +121,6 @@
   return unidirectional_stream_id_manager_.incoming_initial_max_open_streams();
 }
 
-void UberQuicStreamIdManager::SetLargestPeerCreatedStreamId(
-    QuicStreamId largest_peer_created_stream_id) {
-  if (QuicUtils::IsBidirectionalStreamId(largest_peer_created_stream_id)) {
-    bidirectional_stream_id_manager_.set_largest_peer_created_stream_id(
-        largest_peer_created_stream_id);
-    return;
-  }
-  unidirectional_stream_id_manager_.set_largest_peer_created_stream_id(
-      largest_peer_created_stream_id);
-}
-
 QuicStreamId UberQuicStreamIdManager::GetLargestPeerCreatedStreamId(
     bool unidirectional) const {
   if (unidirectional) {
diff --git a/quic/core/uber_quic_stream_id_manager.h b/quic/core/uber_quic_stream_id_manager.h
index 2ea743f..78c012b 100644
--- a/quic/core/uber_quic_stream_id_manager.h
+++ b/quic/core/uber_quic_stream_id_manager.h
@@ -72,9 +72,6 @@
 
   QuicStreamCount GetMaxAllowdIncomingUnidirectionalStreams() const;
 
-  void SetLargestPeerCreatedStreamId(
-      QuicStreamId largest_peer_created_stream_id);
-
   QuicStreamId GetLargestPeerCreatedStreamId(bool unidirectional) const;
 
   QuicStreamId next_outgoing_bidirectional_stream_id() const;
