diff --git a/call/adaptation/broadcast_resource_listener.cc b/call/adaptation/broadcast_resource_listener.cc
index 876d4c0..5a1250ae 100644
--- a/call/adaptation/broadcast_resource_listener.cc
+++ b/call/adaptation/broadcast_resource_listener.cc
@@ -32,7 +32,8 @@
     MutexLock lock(&lock_);
     if (!listener_)
       return;
-    listener_->OnResourceUsageStateMeasured(this, usage_state);
+    listener_->OnResourceUsageStateMeasured(rtc::scoped_refptr<Resource>(this),
+                                            usage_state);
   }
 
   // Resource implementation.
diff --git a/call/adaptation/test/fake_resource.cc b/call/adaptation/test/fake_resource.cc
index d125468..70df058 100644
--- a/call/adaptation/test/fake_resource.cc
+++ b/call/adaptation/test/fake_resource.cc
@@ -29,7 +29,8 @@
 
 void FakeResource::SetUsageState(ResourceUsageState usage_state) {
   if (listener_) {
-    listener_->OnResourceUsageStateMeasured(this, usage_state);
+    listener_->OnResourceUsageStateMeasured(rtc::scoped_refptr<Resource>(this),
+                                            usage_state);
   }
 }
 
diff --git a/call/call.cc b/call/call.cc
index b30b92f..d83d5fb 100644
--- a/call/call.cc
+++ b/call/call.cc
@@ -591,8 +591,9 @@
 rtc::scoped_refptr<SharedModuleThread> SharedModuleThread::Create(
     std::unique_ptr<ProcessThread> process_thread,
     std::function<void()> on_one_ref_remaining) {
-  return new SharedModuleThread(std::move(process_thread),
-                                std::move(on_one_ref_remaining));
+  // Using `new` to access a non-public constructor.
+  return rtc::scoped_refptr<SharedModuleThread>(new SharedModuleThread(
+      std::move(process_thread), std::move(on_one_ref_remaining)));
 }
 
 void SharedModuleThread::EnsureStarted() {
diff --git a/call/call.h b/call/call.h
index f6388c3..1442c05 100644
--- a/call/call.h
+++ b/call/call.h
@@ -40,13 +40,7 @@
 // SharedModuleThread supports a callback that is issued when only one reference
 // remains, which is used to indicate to the original owner that the thread may
 // be discarded.
-class SharedModuleThread : public rtc::RefCountInterface {
- protected:
-  SharedModuleThread(std::unique_ptr<ProcessThread> process_thread,
-                     std::function<void()> on_one_ref_remaining);
-  friend class rtc::scoped_refptr<SharedModuleThread>;
-  ~SharedModuleThread() override;
-
+class SharedModuleThread final {
  public:
   // Allows injection of an externally created process thread.
   static rtc::scoped_refptr<SharedModuleThread> Create(
@@ -58,8 +52,13 @@
   ProcessThread* process_thread();
 
  private:
-  void AddRef() const override;
-  rtc::RefCountReleaseStatus Release() const override;
+  friend class rtc::scoped_refptr<SharedModuleThread>;
+  SharedModuleThread(std::unique_ptr<ProcessThread> process_thread,
+                     std::function<void()> on_one_ref_remaining);
+  ~SharedModuleThread();
+
+  void AddRef() const;
+  rtc::RefCountReleaseStatus Release() const;
 
   class Impl;
   mutable std::unique_ptr<Impl> impl_;
