diff --git a/src/google/protobuf/wire_format.cc b/src/google/protobuf/wire_format.cc
index 1ac0e99..2aeedd0 100644
--- a/src/google/protobuf/wire_format.cc
+++ b/src/google/protobuf/wire_format.cc
@@ -529,8 +529,6 @@
             return false;
           }
         } else {
-          VerifyUTF8StringNamedField(value.data(), value.length(), PARSE,
-                                     field->full_name());
         }
         if (field->is_repeated()) {
           message_reflection->AddString(message, field, value);
@@ -1002,8 +1000,6 @@
             return nullptr;
           }
         } else {
-          VerifyUTF8StringNamedField(value.data(), value.length(), PARSE,
-                                     field->full_name());
         }
       }
       if (field->is_repeated()) {
@@ -1395,8 +1391,6 @@
                                            WireFormatLite::SERIALIZE,
                                            field->full_name());
         } else {
-          VerifyUTF8StringNamedField(value.data(), value.length(), SERIALIZE,
-                                     field->full_name());
         }
         target = stream->WriteString(field->number(), value, target);
         break;
diff --git a/src/google/protobuf/wire_format_unittest.h b/src/google/protobuf/wire_format_unittest.h
index 491ebc7..7eb6d3c 100644
--- a/src/google/protobuf/wire_format_unittest.h
+++ b/src/google/protobuf/wire_format_unittest.h
@@ -1635,8 +1635,6 @@
     EXPECT_CALL(log, Log(absl::LogSeverity::kError, testing::_, testing::_))
         .Times(0);
     log.StartCapturingLogs();
-    WireFormat::VerifyUTF8String(data.data(), data.size(),
-                                 WireFormat::SERIALIZE);
   }
 }
 
