diff --git a/quiche/balsa/balsa_frame.cc b/quiche/balsa/balsa_frame.cc
index af17add..f2fdba4 100644
--- a/quiche/balsa/balsa_frame.cc
+++ b/quiche/balsa/balsa_frame.cc
@@ -737,7 +737,6 @@
     headers_->transfer_encoding_is_chunked_ = false;
     return;
   }
-
   if (http_validation_policy().validate_transfer_encoding) {
     HandleError(BalsaFrameEnums::UNKNOWN_TRANSFER_ENCODING);
   }
@@ -870,11 +869,12 @@
       continue;
     }
     if (absl::EqualsIgnoreCase(key, kTransferEncoding)) {
-      if (http_validation_policy().validate_transfer_encoding &&
-          transfer_encoding_idx != 0) {
-        QUICHE_CODE_COUNT(multiple_transfer_encoding_keys_rejected);
-        HandleError(BalsaFrameEnums::MULTIPLE_TRANSFER_ENCODING_KEYS);
-        return;
+      if (transfer_encoding_idx != 0) {
+        if (http_validation_policy().validate_transfer_encoding) {
+          QUICHE_CODE_COUNT(multiple_transfer_encoding_keys_rejected);
+          HandleError(BalsaFrameEnums::MULTIPLE_TRANSFER_ENCODING_KEYS);
+          return;
+        }
       }
       transfer_encoding_idx = i + 1;
     }
diff --git a/quiche/balsa/balsa_frame_test.cc b/quiche/balsa/balsa_frame_test.cc
index 962ec61..602379e 100644
--- a/quiche/balsa/balsa_frame_test.cc
+++ b/quiche/balsa/balsa_frame_test.cc
@@ -3775,6 +3775,7 @@
   EXPECT_TRUE(balsa_frame_.Error());
   EXPECT_EQ(BalsaFrameEnums::MULTIPLE_TRANSFER_ENCODING_KEYS,
             balsa_frame_.ErrorCode());
+  EXPECT_TRUE(balsa_frame_.protocol_defects().multiple_transfer_encoding_keys);
 }
 
 TEST_F(HTTPBalsaFrameTest, AcceptTwoTransferEncodingHeaders) {
@@ -3793,6 +3794,7 @@
 
   EXPECT_FALSE(balsa_frame_.Error());
   EXPECT_EQ(BalsaFrameEnums::BALSA_NO_ERROR, balsa_frame_.ErrorCode());
+  EXPECT_TRUE(balsa_frame_.protocol_defects().multiple_transfer_encoding_keys);
 }
 
 TEST_F(HTTPBalsaFrameTest, TwoTransferEncodingTokensIsAnError) {
@@ -3806,6 +3808,7 @@
   EXPECT_TRUE(balsa_frame_.Error());
   EXPECT_EQ(BalsaFrameEnums::UNKNOWN_TRANSFER_ENCODING,
             balsa_frame_.ErrorCode());
+  EXPECT_TRUE(balsa_frame_.protocol_defects().unknown_transfer_encoding);
 }
 
 TEST_F(HTTPBalsaFrameTest, AcceptTwoTransferEncodingTokens) {
@@ -3823,6 +3826,7 @@
 
   EXPECT_FALSE(balsa_frame_.Error());
   EXPECT_EQ(BalsaFrameEnums::BALSA_NO_ERROR, balsa_frame_.ErrorCode());
+  EXPECT_TRUE(balsa_frame_.protocol_defects().unknown_transfer_encoding);
 }
 
 TEST_F(HTTPBalsaFrameTest, UnknownTransferEncodingTokenIsAnError) {
@@ -3836,6 +3840,7 @@
   EXPECT_TRUE(balsa_frame_.Error());
   EXPECT_EQ(BalsaFrameEnums::UNKNOWN_TRANSFER_ENCODING,
             balsa_frame_.ErrorCode());
+  EXPECT_TRUE(balsa_frame_.protocol_defects().unknown_transfer_encoding);
 }
 
 TEST_F(HTTPBalsaFrameTest, AcceptUnknownTransferEncodingToken) {
@@ -3853,6 +3858,7 @@
 
   EXPECT_FALSE(balsa_frame_.Error());
   EXPECT_EQ(BalsaFrameEnums::BALSA_NO_ERROR, balsa_frame_.ErrorCode());
+  EXPECT_TRUE(balsa_frame_.protocol_defects().unknown_transfer_encoding);
 }
 
 TEST_F(HTTPBalsaFrameTest, MissingContentLength) {
