diff --git a/api/test/time_controller.cc b/api/test/time_controller.cc
index 26fe69c..b3b2f46 100644
--- a/api/test/time_controller.cc
+++ b/api/test/time_controller.cc
@@ -10,6 +10,22 @@
 #include "api/test/time_controller.h"
 
 namespace webrtc {
+std::unique_ptr<TaskQueueFactory> TimeController::CreateTaskQueueFactory() {
+  class FactoryWrapper final : public TaskQueueFactory {
+   public:
+    explicit FactoryWrapper(TaskQueueFactory* inner_factory)
+        : inner_(inner_factory) {}
+    std::unique_ptr<TaskQueueBase, TaskQueueDeleter> CreateTaskQueue(
+        absl::string_view name,
+        Priority priority) const override {
+      return inner_->CreateTaskQueue(name, priority);
+    }
+
+   private:
+    TaskQueueFactory* const inner_;
+  };
+  return std::make_unique<FactoryWrapper>(GetTaskQueueFactory());
+}
 bool TimeController::Wait(const std::function<bool()>& done,
                           TimeDelta max_duration) {
   // Step size is chosen to be short enough to not significantly affect latency
diff --git a/api/test/time_controller.h b/api/test/time_controller.h
index 6d09481..aa69c52 100644
--- a/api/test/time_controller.h
+++ b/api/test/time_controller.h
@@ -35,6 +35,12 @@
   // The returned factory will created task queues that runs in implementation
   // defined time domain.
   virtual TaskQueueFactory* GetTaskQueueFactory() = 0;
+  // Simple helper to create an owned factory that can be used as a parameter
+  // for PeerConnectionFactory. Note that this might depend on the underlying
+  // time controller and therfore must be destroyed before the time controller
+  // is destroyed.
+  std::unique_ptr<TaskQueueFactory> CreateTaskQueueFactory();
+
   // Creates a process thread.
   virtual std::unique_ptr<ProcessThread> CreateProcessThread(
       const char* thread_name) = 0;
diff --git a/test/peer_scenario/peer_scenario_client.cc b/test/peer_scenario/peer_scenario_client.cc
index 4614942..3485298 100644
--- a/test/peer_scenario/peer_scenario_client.cc
+++ b/test/peer_scenario/peer_scenario_client.cc
@@ -114,21 +114,6 @@
   PeerScenarioClient::CallbackHandlers* handlers_;
 };
 
-// Used to supply a unique_ptr for an unowned TaskQueueFactory.
-class TaskQueueFactoryWrapper final : public TaskQueueFactory {
- public:
-  explicit TaskQueueFactoryWrapper(TaskQueueFactory* inner_factory)
-      : inner_factory_(inner_factory) {}
-  std::unique_ptr<TaskQueueBase, TaskQueueDeleter> CreateTaskQueue(
-      absl::string_view name,
-      Priority priority) const override {
-    return inner_factory_->CreateTaskQueue(name, priority);
-  }
-
- private:
-  TaskQueueFactory* const inner_factory_;
-};
-
 class TimeControllerBasedCallFactory : public CallFactoryInterface {
  public:
   explicit TimeControllerBasedCallFactory(TimeController* time_controller)
@@ -192,7 +177,7 @@
   pcf_deps.call_factory =
       std::make_unique<TimeControllerBasedCallFactory>(net->time_controller());
   pcf_deps.task_queue_factory =
-      std::make_unique<TaskQueueFactoryWrapper>(task_queue_factory_);
+      net->time_controller()->CreateTaskQueueFactory();
   pcf_deps.event_log_factory =
       std::make_unique<RtcEventLogFactory>(task_queue_factory_);
 
