diff --git a/net/id.go b/net/id.go
index 7ee08356c0fac6bb298c882c6efcde0d24909400..86881de40fe0bb0bbe04e7ff772aec035b29d87c 100644
--- a/net/id.go
+++ b/net/id.go
@@ -117,6 +117,7 @@ func (ids *IDService) populateMessage(mes *pb.Handshake3, c Conn) {
 	for i, addr := range laddrs {
 		mes.ListenAddrs[i] = addr.Bytes()
 	}
+	log.Debugf("%s sent listen addrs to %s: %s", c.LocalPeer(), c.RemotePeer(), laddrs)
 
 	// set protocol versions
 	mes.H1 = handshake.NewHandshake1("", "")
diff --git a/net/mock/mock_net.go b/net/mock/mock_net.go
index 09a89f2c419ae1c47a234e2aca9c6277c8d8be04..ffed78b33f9d7c98cd4ebf6ae0c7416f3ad73482 100644
--- a/net/mock/mock_net.go
+++ b/net/mock/mock_net.go
@@ -62,6 +62,12 @@ func (mn *mocknet) AddPeer(k ic.PrivKey, a ma.Multiaddr) (inet.Network, error) {
 		return nil, err
 	}
 
+	// make sure to add listening address!
+	// this makes debugging things simpler as remembering to register
+	// an address may cause unexpected failure.
+	n.Peerstore().AddAddress(n.LocalPeer(), a)
+	log.Debugf("mocknet added listen addr for peer: %s -- %s", n.LocalPeer(), a)
+
 	mn.cg.AddChildGroup(n.cg)
 
 	mn.Lock()
diff --git a/net/mock/mock_peernet.go b/net/mock/mock_peernet.go
index ae10417e596ae1e16660828cfa3c2c938cfc4244..d22162507a9a6ea77a9a10864480e8d038c28775 100644
--- a/net/mock/mock_peernet.go
+++ b/net/mock/mock_peernet.go
@@ -1,6 +1,7 @@
 package mocknet
 
 import (
+	"errors"
 	"fmt"
 	"math/rand"
 	"sync"
@@ -121,8 +122,6 @@ func (pn *peernet) DialPeer(ctx context.Context, p peer.ID) error {
 }
 
 func (pn *peernet) connect(p peer.ID) error {
-	log.Debugf("%s dialing %s", pn.peer, p)
-
 	// first, check if we already have live connections
 	pn.RLock()
 	cs, found := pn.connsByPeer[p]
@@ -131,6 +130,8 @@ func (pn *peernet) connect(p peer.ID) error {
 		return nil
 	}
 
+	log.Debugf("%s (newly) dialing %s", pn.peer, p)
+
 	// ok, must create a new connection. we need a link
 	links := pn.mocknet.LinksBetweenPeers(pn.peer, p)
 	if len(links) < 1 {
@@ -282,14 +283,14 @@ func (pn *peernet) BandwidthTotals() (in uint64, out uint64) {
 
 // ListenAddresses returns a list of addresses at which this network listens.
 func (pn *peernet) ListenAddresses() []ma.Multiaddr {
-	return []ma.Multiaddr{}
+	return pn.Peerstore().Addresses(pn.LocalPeer())
 }
 
 // InterfaceListenAddresses returns a list of addresses at which this network
 // listens. It expands "any interface" addresses (/ip4/0.0.0.0, /ip6/::) to
 // use the known local interfaces.
 func (pn *peernet) InterfaceListenAddresses() ([]ma.Multiaddr, error) {
-	return []ma.Multiaddr{}, nil
+	return nil, errors.New("Mocknet does not have interfaces.")
 }
 
 // Connectedness returns a state signaling connection capabilities