diff --git a/examples/unityplugin/simple_peer_connection.cc b/examples/unityplugin/simple_peer_connection.cc
index 536bf86..ed89489 100644
--- a/examples/unityplugin/simple_peer_connection.cc
+++ b/examples/unityplugin/simple_peer_connection.cc
@@ -122,9 +122,9 @@
   RTC_DCHECK(peer_connection_.get() == nullptr);
 
   if (g_peer_connection_factory == nullptr) {
-    g_worker_thread.reset(new rtc::Thread());
+    g_worker_thread = rtc::Thread::Create();
     g_worker_thread->Start();
-    g_signaling_thread.reset(new rtc::Thread());
+    g_signaling_thread = rtc::Thread::Create();
     g_signaling_thread->Start();
 
     g_peer_connection_factory = webrtc::CreatePeerConnectionFactory(
diff --git a/rtc_base/signal_thread_unittest.cc b/rtc_base/signal_thread_unittest.cc
index c333ff7..f03991b 100644
--- a/rtc_base/signal_thread_unittest.cc
+++ b/rtc_base/signal_thread_unittest.cc
@@ -10,10 +10,11 @@
 
 #include <memory>
 
+#include "absl/memory/memory.h"
 #include "rtc_base/constructor_magic.h"
 #include "rtc_base/gunit.h"
+#include "rtc_base/null_socket_server.h"
 #include "rtc_base/signal_thread.h"
-#include "rtc_base/socket_server.h"
 #include "rtc_base/thread.h"
 #include "test/gtest.h"
 
@@ -129,7 +130,9 @@
 class OwnerThread : public Thread, public sigslot::has_slots<> {
  public:
   explicit OwnerThread(SignalThreadTest* harness)
-      : harness_(harness), has_run_(false) {}
+      : Thread(absl::make_unique<NullSocketServer>()),
+        harness_(harness),
+        has_run_(false) {}
 
   ~OwnerThread() override { Stop(); }
 
diff --git a/rtc_base/thread.cc b/rtc_base/thread.cc
index 936871c..be0d15d 100644
--- a/rtc_base/thread.cc
+++ b/rtc_base/thread.cc
@@ -155,9 +155,6 @@
   thread_->SetAllowBlockingCalls(previous_state_);
 }
 
-// DEPRECATED.
-Thread::Thread() : Thread(SocketServer::CreateDefault()) {}
-
 Thread::Thread(SocketServer* ss) : Thread(ss, /*do_init=*/true) {}
 
 Thread::Thread(std::unique_ptr<SocketServer> ss)
diff --git a/rtc_base/thread.h b/rtc_base/thread.h
index 80720e0..738a243 100644
--- a/rtc_base/thread.h
+++ b/rtc_base/thread.h
@@ -128,13 +128,6 @@
 
 class RTC_LOCKABLE Thread : public MessageQueue {
  public:
-  // DEPRECATED.
-  // The default constructor should not be used because it hides whether or
-  // not a socket server will be associated with the thread. Most instances
-  // of Thread do actually not need one, so please use either of the Create*
-  // methods to construct an instance of Thread.
-  Thread();
-
   explicit Thread(SocketServer* ss);
   explicit Thread(std::unique_ptr<SocketServer> ss);
   // Constructors meant for subclasses; they should call DoInit themselves and
diff --git a/rtc_base/thread_unittest.cc b/rtc_base/thread_unittest.cc
index 800f1b1..c4b6143 100644
--- a/rtc_base/thread_unittest.cc
+++ b/rtc_base/thread_unittest.cc
@@ -10,6 +10,7 @@
 
 #include <memory>
 
+#include "absl/memory/memory.h"
 #include "rtc_base/async_invoker.h"
 #include "rtc_base/async_udp_socket.h"
 #include "rtc_base/event.h"
@@ -513,7 +514,7 @@
   bool reentrant_functor_run = false;
 
   Thread* main = Thread::Current();
-  Thread thread;
+  Thread thread(absl::make_unique<NullSocketServer>());
   thread.Start();
   {
     AsyncInvoker invoker;
