diff --git a/mininet/node.py b/mininet/node.py
index b249cd97f86781a5db64faa97709481cf6f356b0..2af68a6951441011be1154a6a5f414b63a02c1b3 100644
--- a/mininet/node.py
+++ b/mininet/node.py
@@ -827,10 +827,13 @@ def setup( cls ):
 
     def dpctl( self, *args ):
         "Run dpctl command"
+        listenAddr = None
         if not self.listenPort:
-            return "can't run dpctl without passive listening port"
+            listenAddr = 'unix:/tmp/' + self.name
+        else:
+            listenAddr = 'tcp:127.0.0.1:%i' % self.listenPort
         return self.cmd( 'dpctl ' + ' '.join( args ) +
-                         ' tcp:127.0.0.1:%i' % self.listenPort )
+                         ' ' + listenAddr )
 
     def connected( self ):
         "Is the switch connected to a controller?"