diff --git a/quic/tools/quic_memory_cache_backend.cc b/quic/tools/quic_memory_cache_backend.cc
index c7ac912..370eb4a 100644
--- a/quic/tools/quic_memory_cache_backend.cc
+++ b/quic/tools/quic_memory_cache_backend.cc
@@ -199,8 +199,8 @@
     SpdyHeaderBlock response_headers,
     quiche::QuicheStringPiece response_body) {
   AddResponseImpl(host, path, QuicBackendResponse::REGULAR_RESPONSE,
-                  std::move(response_headers), response_body, SpdyHeaderBlock(),
-                  0);
+                  std::move(response_headers), response_body,
+                  SpdyHeaderBlock());
 }
 
 void QuicMemoryCacheBackend::AddResponse(
@@ -211,7 +211,7 @@
     SpdyHeaderBlock response_trailers) {
   AddResponseImpl(host, path, QuicBackendResponse::REGULAR_RESPONSE,
                   std::move(response_headers), response_body,
-                  std::move(response_trailers), 0);
+                  std::move(response_trailers));
 }
 
 void QuicMemoryCacheBackend::AddSpecialResponse(
@@ -219,7 +219,7 @@
     quiche::QuicheStringPiece path,
     SpecialResponseType response_type) {
   AddResponseImpl(host, path, response_type, SpdyHeaderBlock(), "",
-                  SpdyHeaderBlock(), 0);
+                  SpdyHeaderBlock());
 }
 
 void QuicMemoryCacheBackend::AddSpecialResponse(
@@ -229,18 +229,7 @@
     quiche::QuicheStringPiece response_body,
     SpecialResponseType response_type) {
   AddResponseImpl(host, path, response_type, std::move(response_headers),
-                  response_body, SpdyHeaderBlock(), 0);
-}
-
-void QuicMemoryCacheBackend::AddStopSendingResponse(
-    quiche::QuicheStringPiece host,
-    quiche::QuicheStringPiece path,
-    spdy::SpdyHeaderBlock response_headers,
-    quiche::QuicheStringPiece response_body,
-    uint16_t stop_sending_code) {
-  AddResponseImpl(host, path, SpecialResponseType::STOP_SENDING,
-                  std::move(response_headers), response_body, SpdyHeaderBlock(),
-                  stop_sending_code);
+                  response_body, SpdyHeaderBlock());
 }
 
 QuicMemoryCacheBackend::QuicMemoryCacheBackend() : cache_initialized_(false) {}
@@ -369,8 +358,7 @@
     SpecialResponseType response_type,
     SpdyHeaderBlock response_headers,
     quiche::QuicheStringPiece response_body,
-    SpdyHeaderBlock response_trailers,
-    uint16_t stop_sending_code) {
+    SpdyHeaderBlock response_trailers) {
   QuicWriterMutexLock lock(&response_mutex_);
 
   DCHECK(!host.empty()) << "Host must be populated, e.g. \"www.google.com\"";
@@ -384,7 +372,6 @@
   new_response->set_headers(std::move(response_headers));
   new_response->set_body(response_body);
   new_response->set_trailers(std::move(response_trailers));
-  new_response->set_stop_sending_code(stop_sending_code);
   QUIC_DVLOG(1) << "Add response with key " << key;
   responses_[key] = std::move(new_response);
 }
