diff --git a/quiche/quic/core/http/quic_spdy_stream.cc b/quiche/quic/core/http/quic_spdy_stream.cc
index cd5590e..e27a23a 100644
--- a/quiche/quic/core/http/quic_spdy_stream.cc
+++ b/quiche/quic/core/http/quic_spdy_stream.cc
@@ -888,7 +888,6 @@
   return headers_decompressed_ && header_list_.empty();
 }
 
-// static
 bool QuicSpdyStream::ParseHeaderStatusCode(const Http2HeaderBlock& header,
                                            int* status_code) {
   Http2HeaderBlock::const_iterator it = header.find(spdy::kHttp2StatusHeader);
@@ -896,6 +895,11 @@
     return false;
   }
   const absl::string_view status(it->second);
+  return ParseHeaderStatusCode(status, status_code);
+}
+
+bool QuicSpdyStream::ParseHeaderStatusCode(absl::string_view status,
+                                           int* status_code) {
   if (status.size() != 3) {
     return false;
   }
diff --git a/quiche/quic/core/http/quic_spdy_stream.h b/quiche/quic/core/http/quic_spdy_stream.h
index 4718591..5ba4400 100644
--- a/quiche/quic/core/http/quic_spdy_stream.h
+++ b/quiche/quic/core/http/quic_spdy_stream.h
@@ -180,6 +180,10 @@
   // code to |status_code|.
   static bool ParseHeaderStatusCode(const spdy::Http2HeaderBlock& header,
                                     int* status_code);
+  // Returns true if status_value (associated with :status) contains a valid
+  // 3-digit status and parse the status code to |status_code|.
+  static bool ParseHeaderStatusCode(absl::string_view status_value,
+                                    int* status_code);
 
   // Returns true when all data from the peer has been read and consumed,
   // including the fin.
diff --git a/quiche/quic/tools/quic_simple_server_stream.cc b/quiche/quic/tools/quic_simple_server_stream.cc
index f4dec74..d8b7a7b 100644
--- a/quiche/quic/tools/quic_simple_server_stream.cc
+++ b/quiche/quic/tools/quic_simple_server_stream.cc
@@ -459,8 +459,13 @@
   if (response_headers.has_value()) {
     QUIC_DLOG(INFO) << "Stream " << id() << " writing headers (fin = false) : "
                     << response_headers.value().DebugString();
+    // Do not mark response sent for early 100 continue response.
+    int response_code;
+    if (!ParseHeaderStatusCode(*response_headers, &response_code) ||
+        response_code != 100) {
+      response_sent_ = true;
+    }
     WriteHeaders(std::move(response_headers).value(), /*fin=*/false, nullptr);
-    response_sent_ = true;
   }
 
   QUIC_DLOG(INFO) << "Stream " << id()
diff --git a/quiche/quic/tools/quic_simple_server_stream.h b/quiche/quic/tools/quic_simple_server_stream.h
index 85ce8b5..2cabefd 100644
--- a/quiche/quic/tools/quic_simple_server_stream.h
+++ b/quiche/quic/tools/quic_simple_server_stream.h
@@ -110,7 +110,7 @@
   }
 
   bool response_sent() const { return response_sent_; }
-
+  void set_response_sent() { response_sent_ = true; }
   // The parsed headers received from the client.
   spdy::Http2HeaderBlock request_headers_;
   int64_t content_length_;
