diff --git a/plugin/forward/persistent.go b/plugin/forward/persistent.go
index 6ea4d0371..2f488e485 100644
--- a/plugin/forward/persistent.go
+++ b/plugin/forward/persistent.go
@@ -31,25 +31,18 @@ type transport struct {
 	dial  chan string
 	yield chan connErr
 	ret   chan connErr
-
-	// Aid in testing, gets length of cache in data-race safe manner.
-	lenc    chan bool
-	lencOut chan int
-
-	stop chan bool
+	stop  chan bool
 }
 
 func newTransport(addr string, tlsConfig *tls.Config) *transport {
 	t := &transport{
-		conns:   make(map[string][]*persistConn),
-		expire:  defaultExpire,
-		addr:    addr,
-		dial:    make(chan string),
-		yield:   make(chan connErr),
-		ret:     make(chan connErr),
-		stop:    make(chan bool),
-		lenc:    make(chan bool),
-		lencOut: make(chan int),
+		conns:  make(map[string][]*persistConn),
+		expire: defaultExpire,
+		addr:   addr,
+		dial:   make(chan string),
+		yield:  make(chan connErr),
+		ret:    make(chan connErr),
+		stop:   make(chan bool),
 	}
 	go t.connManager()
 	return t
@@ -65,13 +58,6 @@ func (t *transport) len() int {
 	return l
 }
 
-// Len returns the number of connections in the cache.
-func (t *transport) Len() int {
-	t.lenc <- true
-	l := <-t.lencOut
-	return l
-}
-
 // connManagers manages the persistent connection cache for UDP and TCP.
 func (t *transport) connManager() {
 
@@ -128,13 +114,6 @@ Wait:
 
 		case <-t.stop:
 			return
-
-		case <-t.lenc:
-			l := 0
-			for _, conns := range t.conns {
-				l += len(conns)
-			}
-			t.lencOut <- l
 		}
 	}
 }
diff --git a/plugin/forward/persistent_test.go b/plugin/forward/persistent_test.go
index f4f476afa..4b60c7c07 100644
--- a/plugin/forward/persistent_test.go
+++ b/plugin/forward/persistent_test.go
@@ -30,28 +30,4 @@ func TestPersistent(t *testing.T) {
 	tr.Yield(c1)
 	tr.Yield(c2)
 	tr.Yield(c3)
-
-	if x := tr.Len(); x != 3 {
-		t.Errorf("Expected cache size to be 3, got %d", x)
-	}
-
-	c4, cache4, _ := tr.Dial("udp")
-	if x := tr.Len(); x != 2 {
-		t.Errorf("Expected cache size to be 2, got %d", x)
-	}
-
-	c5, cache5, _ := tr.Dial("udp")
-	if x := tr.Len(); x != 1 {
-		t.Errorf("Expected cache size to be 1, got %d", x)
-	}
-
-	if cache4 == false || cache5 == false {
-		t.Errorf("Expected cached connection")
-	}
-	tr.Yield(c4)
-	tr.Yield(c5)
-
-	if x := tr.Len(); x != 3 {
-		t.Errorf("Expected cache size to be 3, got %d", x)
-	}
 }