diff --git a/talk/app/webrtc/peerconnection.cc b/talk/app/webrtc/peerconnection.cc
index f1ff4e6..933dc83 100644
--- a/talk/app/webrtc/peerconnection.cc
+++ b/talk/app/webrtc/peerconnection.cc
@@ -107,7 +107,6 @@
   MSG_SET_SESSIONDESCRIPTION_FAILED,
   MSG_CREATE_SESSIONDESCRIPTION_FAILED,
   MSG_GETSTATS,
-  MSG_DELETE,
 };
 
 struct SetSessionDescriptionMsg : public rtc::MessageData {
@@ -598,8 +597,6 @@
 PeerConnection::~PeerConnection() {
   TRACE_EVENT0("webrtc", "PeerConnection::~PeerConnection");
   RTC_DCHECK(signaling_thread()->IsCurrent());
-  // Finish any pending deletions.
-  signaling_thread()->Clear(this, MSG_DELETE, nullptr);
   // Need to detach RTP senders/receivers from WebRtcSession,
   // since it's about to be destroyed.
   for (const auto& sender : senders_) {
@@ -1332,10 +1329,6 @@
       delete param;
       break;
     }
-    case MSG_DELETE: {
-      delete msg->pdata;
-      break;
-    }
     default:
       RTC_DCHECK(false && "Not implemented");
       break;
@@ -1915,11 +1908,6 @@
       if (channel->id() >= 0) {
         sid_allocator_.ReleaseSid(channel->id());
       }
-      // Since this method is triggered by a signal from the DataChannel,
-      // we can't free it directly here; we need to free it asynchronously.
-      signaling_thread()->Post(
-          this, MSG_DELETE,
-          new rtc::TypedMessageData<rtc::scoped_refptr<DataChannel>>(channel));
       sctp_data_channels_.erase(it);
       return;
     }
diff --git a/talk/app/webrtc/peerconnectionendtoend_unittest.cc b/talk/app/webrtc/peerconnectionendtoend_unittest.cc
index aff117e..1d7bb92 100644
--- a/talk/app/webrtc/peerconnectionendtoend_unittest.cc
+++ b/talk/app/webrtc/peerconnectionendtoend_unittest.cc
@@ -402,30 +402,3 @@
 
   CloseDataChannels(caller_dc, callee_signaled_data_channels_, 1);
 }
-
-// This tests that if a data channel is closed remotely while not referenced
-// by the application (meaning only the PeerConnection contributes to its
-// reference count), no memory access violation will occur.
-// See: https://code.google.com/p/chromium/issues/detail?id=565048
-TEST_F(PeerConnectionEndToEndTest, CloseDataChannelRemotelyWhileNotReferenced) {
-  MAYBE_SKIP_TEST(rtc::SSLStreamAdapter::HaveDtlsSrtp);
-
-  CreatePcs();
-
-  webrtc::DataChannelInit init;
-  rtc::scoped_refptr<DataChannelInterface> caller_dc(
-      caller_->CreateDataChannel("data", init));
-
-  Negotiate();
-  WaitForConnection();
-
-  WaitForDataChannelsToOpen(caller_dc, callee_signaled_data_channels_, 0);
-  // This removes the reference to the remote data channel that we hold.
-  callee_signaled_data_channels_.clear();
-  caller_dc->Close();
-  EXPECT_EQ_WAIT(DataChannelInterface::kClosed, caller_dc->state(), kMaxWait);
-
-  // Wait for a bit longer so the remote data channel will receive the
-  // close message and be destroyed.
-  rtc::Thread::Current()->ProcessMessages(100);
-}
