diff --git a/pc/webrtc_sdp.cc b/pc/webrtc_sdp.cc
index 8e45524..3f1c837 100644
--- a/pc/webrtc_sdp.cc
+++ b/pc/webrtc_sdp.cc
@@ -26,7 +26,6 @@
 
 #include "absl/algorithm/container.h"
 #include "absl/strings/ascii.h"
-#include "absl/strings/match.h"
 #include "api/candidate.h"
 #include "api/crypto_params.h"
 #include "api/jsep_ice_candidate.h"
@@ -3602,7 +3601,7 @@
     VideoContentDescription* video_desc = media_desc->as_video();
     for (const cricket::VideoCodec& existing_codec : video_desc->codecs()) {
       if (!existing_codec.name.empty() && payload_type == existing_codec.id &&
-          (!absl::EqualsIgnoreCase(encoding_name, existing_codec.name) ||
+          (encoding_name != existing_codec.name ||
            clock_rate != existing_codec.clockrate)) {
         rtc::StringBuilder description;
         description
@@ -3634,7 +3633,7 @@
     AudioContentDescription* audio_desc = media_desc->as_audio();
     for (const cricket::AudioCodec& existing_codec : audio_desc->codecs()) {
       if (!existing_codec.name.empty() && payload_type == existing_codec.id &&
-          (!absl::EqualsIgnoreCase(encoding_name, existing_codec.name) ||
+          (encoding_name != existing_codec.name ||
            clock_rate != existing_codec.clockrate ||
            channels != existing_codec.channels)) {
         rtc::StringBuilder description;
diff --git a/pc/webrtc_sdp_unittest.cc b/pc/webrtc_sdp_unittest.cc
index 02f990b..306b162 100644
--- a/pc/webrtc_sdp_unittest.cc
+++ b/pc/webrtc_sdp_unittest.cc
@@ -4699,21 +4699,6 @@
   EXPECT_TRUE(SdpDeserialize(sdp, &jdesc_output));
 }
 
-TEST_F(WebRtcSdpTest, StaticallyAssignedPayloadTypeWithDifferentCasing) {
-  std::string sdp =
-      "v=0\r\n"
-      "o=- 11 22 IN IP4 127.0.0.1\r\n"
-      "s=-\r\n"
-      "t=0 0\r\n"
-      "m=audio 49232 RTP/AVP 18\r\n"
-      // Casing differs from statically assigned type, this should
-      // still be accepted.
-      "a=rtpmap:18 g729/8000\r\n";
-
-  JsepSessionDescription jdesc_output(kDummyType);
-  EXPECT_TRUE(SdpDeserialize(sdp, &jdesc_output));
-}
-
 // This tests parsing of SDP with unknown ssrc-specific attributes.
 TEST_F(WebRtcSdpTest, ParseIgnoreUnknownSsrcSpecificAttribute) {
   std::string sdp = kSdpString;
