diff --git a/connect/manager.go b/connect/manager.go
index 66b2dead5f3562d5ef09d5cb2f50957f4a9e5731..8c111f6513a0ce318367d47dbd7d7c3bf2e956ba 100644
--- a/connect/manager.go
+++ b/connect/manager.go
@@ -122,6 +122,8 @@ func (m *Manager) String() string {
 	var result bytes.Buffer
 	i := uint32(0)
 	result.WriteString(fmt.Sprintf("Host Manager Connections\n"))
+
+	m.mux.RLock()
 	for k, host := range m.connections {
 		isConnected, _ := host.Connected()
 		if isConnected {
@@ -130,6 +132,7 @@ func (m *Manager) String() string {
 		result.WriteString(fmt.Sprintf("[%s] IsConnected: %t\n",
 			(&k).String(), isConnected))
 	}
+	m.mux.RUnlock()
 	result.WriteString(fmt.Sprintf("%d/%d Hosts connected", i, len(m.connections)))
 	return result.String()
 }