diff --git a/router/java/src/net/i2p/router/transport/TransportManager.java b/router/java/src/net/i2p/router/transport/TransportManager.java
index a5e3a71fca9394e460b2cabccb7fccfa7271089a..97e7fe8c83e3948091c94f6a898658ef60e6d206 100644
--- a/router/java/src/net/i2p/router/transport/TransportManager.java
+++ b/router/java/src/net/i2p/router/transport/TransportManager.java
@@ -138,7 +138,8 @@ public class TransportManager implements TransportEventListener {
     }
 
     public void startListening() {
-        _dhThread.start();
+        if (_dhThread.getState() == Thread.State.NEW)
+            _dhThread.start();
         // For now, only start UPnP if we have no publicly-routable addresses
         // so we don't open the listener ports to the world.
         // Maybe we need a config option to force on? Probably not.