diff --git a/src/net/sf/briar/plugins/modem/ModemPlugin.java b/src/net/sf/briar/plugins/modem/ModemPlugin.java
index f2ea8473901cab58ed17e9ecd43701106a44218e..435f10a4a199cd5cc954328e154a6dbdfd637360 100644
--- a/src/net/sf/briar/plugins/modem/ModemPlugin.java
+++ b/src/net/sf/briar/plugins/modem/ModemPlugin.java
@@ -88,14 +88,17 @@ class ModemPlugin implements DuplexPlugin, Modem.Callback {
 	// Synchronized to avoid a race condition with stop()
 	private synchronized boolean resetModem() {
 		if(!running) return false;
-		try {
-			modem.init();
-			return true;
-		} catch(IOException e) {
-			if(LOG.isLoggable(WARNING)) LOG.warning(e.toString());
-			running = false;
-			return false;
+		for(String portName : SerialPortList.getPortNames()) {
+			modem = modemFactory.createModem(this, portName);
+			try {
+				modem.init();
+				return true;
+			} catch(IOException e) {
+				if(LOG.isLoggable(WARNING)) LOG.warning(e.toString());
+			}
 		}
+		running = false;
+		return false;
 	}
 
 	public boolean shouldPoll() {