diff --git a/bramble-core/src/main/java/org/briarproject/bramble/plugin/PluginManagerImpl.java b/bramble-core/src/main/java/org/briarproject/bramble/plugin/PluginManagerImpl.java
index a534eb357e3d89b94c9f01bbb24479ef245491dc..5b74eb4befc81ec75452e7e842a111d27b61cd47 100644
--- a/bramble-core/src/main/java/org/briarproject/bramble/plugin/PluginManagerImpl.java
+++ b/bramble-core/src/main/java/org/briarproject/bramble/plugin/PluginManagerImpl.java
@@ -108,6 +108,13 @@ class PluginManagerImpl implements PluginManager, Service {
 	@Override
 	public void startService() throws ServiceException {
 		if (used.getAndSet(true)) throw new IllegalStateException();
+		// Instantiate the poller
+		if (pluginConfig.shouldPoll()) {
+			LOG.info("Starting poller");
+			Poller poller = new Poller(ioExecutor, scheduler, connectionManager,
+					connectionRegistry, this, random, clock);
+			eventBus.addListener(poller);
+		}
 		// Instantiate the simplex plugins and start them asynchronously
 		LOG.info("Starting simplex plugins");
 		for (SimplexPluginFactory f : pluginConfig.getSimplexFactories()) {
@@ -140,13 +147,6 @@ class PluginManagerImpl implements PluginManager, Service {
 				ioExecutor.execute(new PluginStarter(d, startLatch));
 			}
 		}
-		// Instantiate the poller
-		if (pluginConfig.shouldPoll()) {
-			LOG.info("Starting poller");
-			Poller poller = new Poller(ioExecutor, scheduler, connectionManager,
-					connectionRegistry, this, random, clock);
-			eventBus.addListener(poller);
-		}
 	}
 
 	@Override
diff --git a/bramble-core/src/test/java/org/briarproject/bramble/plugin/PluginManagerImplTest.java b/bramble-core/src/test/java/org/briarproject/bramble/plugin/PluginManagerImplTest.java
index 958f1218df668bae8566ab9eddf284f430125f96..2af1852a0dd9ccb68164a71f3cc69bb096ece63e 100644
--- a/bramble-core/src/test/java/org/briarproject/bramble/plugin/PluginManagerImplTest.java
+++ b/bramble-core/src/test/java/org/briarproject/bramble/plugin/PluginManagerImplTest.java
@@ -40,9 +40,7 @@ public class PluginManagerImplTest extends BrambleTestCase {
 			setThreadingPolicy(new Synchroniser());
 		}};
 		Executor ioExecutor = Executors.newSingleThreadExecutor();
-		RejectedExecutionHandler policy =
-				new ScheduledThreadPoolExecutor.DiscardPolicy();
-		ScheduledExecutorService scheduler = new ScheduledThreadPoolExecutor(1, policy);
+		ScheduledExecutorService scheduler = context.mock(ScheduledExecutorService.class);
 		SecureRandom random = new SecureRandom();
 		Clock clock = context.mock(Clock.class);
 		EventBus eventBus = context.mock(EventBus.class);