diff --git a/router/java/src/net/i2p/router/transport/udp/UDPTransport.java b/router/java/src/net/i2p/router/transport/udp/UDPTransport.java
index 1affe6bf11f18ca862ce11515ef7544e1190350b..b9cf45f0d27b77bffb2123dd24c6a7006aa3b017 100644
--- a/router/java/src/net/i2p/router/transport/udp/UDPTransport.java
+++ b/router/java/src/net/i2p/router/transport/udp/UDPTransport.java
@@ -1848,19 +1848,20 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
             return null;
         
         OrderedProperties options = new OrderedProperties(); 
-        boolean directIncluded = false;
+        boolean directIncluded;
         // DNS name assumed IPv4
         boolean isIPv6 = host != null && host.contains(":");
-        if (allowDirectUDP() && port > 0 && host != null) {
-            // TODO don't add these if we have (or require?) introducers
+        boolean introducersRequired = (!isIPv6) && introducersRequired();
+        if (!introducersRequired && allowDirectUDP() && port > 0 && host != null) {
             options.setProperty(UDPAddress.PROP_PORT, String.valueOf(port));
             options.setProperty(UDPAddress.PROP_HOST, host);
             directIncluded = true;
+        } else {
+            directIncluded = false;
         }
         
-        boolean introducersRequired = (!isIPv6) && introducersRequired();
         boolean introducersIncluded = false;
-        if (introducersRequired || !directIncluded) {
+        if (introducersRequired) {
             // FIXME intro manager doesn't sort introducers, so
             // deepEquals() below can fail even with same introducers.
             // Only a problem when we have very very few peers to pick from.
@@ -1872,9 +1873,6 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
                 _introducersSelectedOn = _context.clock().now();
                 introducersIncluded = true;
             } else {
-                // FIXME
-                // maybe we should fail to publish an address at all in this case?
-                // YES that would be better
                 if (_log.shouldLog(Log.WARN))
                     _log.warn("Direct? " + directIncluded + " reqd? " + introducersRequired +
                               " no introducers");