diff --git a/experiments/field_trials.py b/experiments/field_trials.py
index dc1e127..c0b5a7b 100755
--- a/experiments/field_trials.py
+++ b/experiments/field_trials.py
@@ -122,9 +122,6 @@
     FieldTrial('WebRTC-NoSdpMangleUfragRestrictedAddresses',
                409713509,
                date(2025, 10, 11)),
-    FieldTrial('WebRTC-NoSdpMangleNumberOfContents',
-               40567530,
-               date(2025, 10, 11)),
     FieldTrial('WebRTC-NoSdpMangleReject',
                40567530,
                date(2026, 6, 1)),
diff --git a/pc/sdp_munging_detector.cc b/pc/sdp_munging_detector.cc
index addfa25..4456972 100644
--- a/pc/sdp_munging_detector.cc
+++ b/pc/sdp_munging_detector.cc
@@ -598,8 +598,14 @@
 
 bool IsSdpMungingAllowed(SdpMungingType sdp_munging_type,
                          const FieldTrialsView& trials) {
-  if (sdp_munging_type == SdpMungingType::kNoModification) {
-    return true;
+  switch (sdp_munging_type) {
+    case SdpMungingType::kNoModification:
+      return true;
+    case SdpMungingType::kNumberOfContents:
+      return false;
+    default:
+      // Handled below.
+      break;
   }
   std::string type_as_string =
       std::to_string(static_cast<int>(sdp_munging_type));
diff --git a/pc/sdp_munging_detector_unittest.cc b/pc/sdp_munging_detector_unittest.cc
index cd655e8..2785100 100644
--- a/pc/sdp_munging_detector_unittest.cc
+++ b/pc/sdp_munging_detector_unittest.cc
@@ -679,7 +679,7 @@
       ElementsAre(Pair(SdpMungingType::kDtlsSetup, 1)));
 }
 
-TEST_F(SdpMungingTest, RemoveContentDefault) {
+TEST_F(SdpMungingTest, RemoveContentRejected) {
   auto pc = CreatePeerConnection();
   pc->AddAudioTrack("audio_track", {});
 
@@ -707,35 +707,6 @@
       ElementsAre(Pair(static_cast<int>(SdpMungingOutcome::kRejected), 1)));
 }
 
-TEST_F(SdpMungingTest, RemoveContentKillswitch) {
-  auto pc =
-      CreatePeerConnection("WebRTC-NoSdpMangleNumberOfContents/Disabled/");
-  pc->AddAudioTrack("audio_track", {});
-
-  std::unique_ptr<SessionDescriptionInterface> offer = pc->CreateOffer();
-  auto& contents = offer->description()->contents();
-  ASSERT_EQ(contents.size(), 1u);
-  auto name = contents[0].mid();
-  EXPECT_TRUE(offer->description()->RemoveContentByName(contents[0].mid()));
-  std::string sdp;
-  offer->ToString(&sdp);
-  auto modified_offer = CreateSessionDescription(
-      SdpType::kOffer,
-      absl::StrReplaceAll(sdp, {{"a=group:BUNDLE " + name, "a=group:BUNDLE"}}));
-
-  RTCError error;
-  EXPECT_TRUE(pc->SetLocalDescription(std::move(modified_offer), &error));
-  EXPECT_THAT(
-      metrics::Samples("WebRTC.PeerConnection.SdpMunging.Offer.Initial"),
-      ElementsAre(Pair(SdpMungingType::kNumberOfContents, 1)));
-  EXPECT_THAT(
-      metrics::Samples("WebRTC.PeerConnection.SdpMunging.SdpOutcome.Accepted"),
-      ElementsAre(Pair(SdpMungingType::kNumberOfContents, 1)));
-  EXPECT_THAT(
-      metrics::Samples("WebRTC.PeerConnection.SdpMunging.Outcome"),
-      ElementsAre(Pair(static_cast<int>(SdpMungingOutcome::kAccepted), 1)));
-}
-
 TEST_F(SdpMungingTest, TransceiverDirection) {
   auto pc = CreatePeerConnection();
   pc->AddAudioTrack("audio_track", {});
diff --git a/pc/sdp_offer_answer.cc b/pc/sdp_offer_answer.cc
index 4785050..7339c0f 100644
--- a/pc/sdp_offer_answer.cc
+++ b/pc/sdp_offer_answer.cc
@@ -2483,10 +2483,6 @@
         RTC_LOG(LS_ERROR) << "Rejecting SDP because of ufrag modification";
         reject_error = true;
       }
-    } else if (sdp_munging_type == kNumberOfContents &&
-               !pc_->trials().IsDisabled(
-                   "WebRTC-NoSdpMangleNumberOfContents")) {
-      reject_error = true;
     } else {
       reject_error = !IsSdpMungingAllowed(sdp_munging_type, pc_->trials());
     }
