diff --git a/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/DesktopModule.kt b/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/DesktopModule.kt
index 4ba3c05cc9be759e19904984b4e9e3f867da6912..ec2727636503936b5a52c7c9eced97df7d722447 100644
--- a/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/DesktopModule.kt
+++ b/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/DesktopModule.kt
@@ -27,8 +27,10 @@ import org.briarproject.bramble.api.plugin.duplex.DuplexPluginFactory
 import org.briarproject.bramble.api.plugin.simplex.SimplexPluginFactory
 import org.briarproject.bramble.plugin.tcp.LanTcpPluginFactory
 import org.briarproject.bramble.plugin.tor.UnixTorPluginFactory
-import org.briarproject.bramble.util.OsUtils
-import java.util.Collections
+import org.briarproject.bramble.plugin.tor.WindowsTorPluginFactory
+import org.briarproject.bramble.util.OsUtils.isLinux
+import org.briarproject.bramble.util.OsUtils.isMac
+import org.briarproject.bramble.util.OsUtils.isWindows
 import javax.inject.Singleton
 
 @Module(
@@ -58,12 +60,19 @@ internal class DesktopModule {
     }
 
     @Provides
-    internal fun providePluginConfig(tor: UnixTorPluginFactory, lan: LanTcpPluginFactory): PluginConfig {
-        val duplex: List<DuplexPluginFactory> =
-            if (OsUtils.isLinux() || OsUtils.isMac()) listOf(tor, lan) else listOf(lan)
+    internal fun providePluginConfig(
+        unixTor: UnixTorPluginFactory,
+        winTor: WindowsTorPluginFactory,
+        lan: LanTcpPluginFactory
+    ): PluginConfig {
+        val duplex: List<DuplexPluginFactory> = when {
+            isLinux() || isMac() -> listOf(unixTor, lan)
+            isWindows() -> listOf(winTor, lan)
+            else -> listOf(lan)
+        }
         return object : PluginConfig {
             override fun getDuplexFactories(): Collection<DuplexPluginFactory> = duplex
-            override fun getSimplexFactories(): Collection<SimplexPluginFactory> = Collections.emptyList()
+            override fun getSimplexFactories(): Collection<SimplexPluginFactory> = emptyList()
             override fun shouldPoll(): Boolean = true
             override fun getTransportPreferences(): Map<TransportId, List<TransportId>> = emptyMap()
         }
diff --git a/briar-desktop/src/test/kotlin/org/briarproject/briar/desktop/DesktopTestModule.kt b/briar-desktop/src/test/kotlin/org/briarproject/briar/desktop/DesktopTestModule.kt
index 25f45d2f84dc4e58018eadc58bd9e68a0e670347..0d181915e4e94bbb34b495077e754449c904653c 100644
--- a/briar-desktop/src/test/kotlin/org/briarproject/briar/desktop/DesktopTestModule.kt
+++ b/briar-desktop/src/test/kotlin/org/briarproject/briar/desktop/DesktopTestModule.kt
@@ -27,12 +27,14 @@ import org.briarproject.bramble.api.plugin.duplex.DuplexPluginFactory
 import org.briarproject.bramble.api.plugin.simplex.SimplexPluginFactory
 import org.briarproject.bramble.plugin.tcp.TestLanTcpPluginFactory
 import org.briarproject.bramble.plugin.tor.UnixTorPluginFactory
-import org.briarproject.bramble.util.OsUtils
+import org.briarproject.bramble.plugin.tor.WindowsTorPluginFactory
+import org.briarproject.bramble.util.OsUtils.isLinux
+import org.briarproject.bramble.util.OsUtils.isMac
+import org.briarproject.bramble.util.OsUtils.isWindows
 import org.briarproject.briar.api.test.TestAvatarCreator
 import org.briarproject.briar.desktop.testdata.DeterministicTestDataCreator
 import org.briarproject.briar.desktop.testdata.DeterministicTestDataCreatorImpl
 import org.briarproject.briar.desktop.testdata.TestAvatarCreatorImpl
-import java.util.Collections
 import javax.inject.Singleton
 
 @Module(
@@ -72,12 +74,19 @@ internal class DesktopTestModule {
         testDataCreator
 
     @Provides
-    internal fun providePluginConfig(tor: UnixTorPluginFactory, lan: TestLanTcpPluginFactory): PluginConfig {
-        val duplex: List<DuplexPluginFactory> =
-            if (OsUtils.isLinux() || OsUtils.isMac()) listOf(tor, lan) else listOf(lan)
+    internal fun providePluginConfig(
+        unixTor: UnixTorPluginFactory,
+        winTor: WindowsTorPluginFactory,
+        lan: TestLanTcpPluginFactory
+    ): PluginConfig {
+        val duplex: List<DuplexPluginFactory> = when {
+            isLinux() || isMac() -> listOf(unixTor, lan)
+            isWindows() -> listOf(winTor, lan)
+            else -> listOf(lan)
+        }
         return object : PluginConfig {
             override fun getDuplexFactories(): Collection<DuplexPluginFactory> = duplex
-            override fun getSimplexFactories(): Collection<SimplexPluginFactory> = Collections.emptyList()
+            override fun getSimplexFactories(): Collection<SimplexPluginFactory> = emptyList()
             override fun shouldPoll(): Boolean = true
             override fun getTransportPreferences(): Map<TransportId, List<TransportId>> = emptyMap()
         }