diff --git a/src/or/connection.c b/src/or/connection.c
index 0daa914b7f..2918880905 100644
--- a/src/or/connection.c
+++ b/src/or/connection.c
@@ -995,9 +995,9 @@ connection_connect(connection_t *conn, const char *address,
* connection binding to each one. Otherwise, create a single
* connection binding to the address default_addr.)
*
- * Only relaunch the listeners of this type if the number of existing
- * connections is not as configured (e.g., because one died), or if the
- * existing connections do not match those configured.
+ * Only launch the listeners of this type that are not already open, and
+ * only close listeners that are no longer wanted. Existing listeners
+ * that are still configured are not touched.
*
* Add all old conns that should be closed to replaced_conns.
* Add all new connections to new_conns.
@@ -1100,8 +1100,9 @@ retry_listeners(int type, config_line_t *cfg,
return r;
}
-/** (Re)launch listeners for each port you should have open. Only relaunch
- * listeners when we have the wrong number of connections for a given type.
+/** Launch listeners for each port you should have open. Only launch
+ * listeners who are not already open, and only close listeners we no longer
+ * want.
*
* Add all old conns that should be closed to replaced_conns.
* Add all new connections to new_conns.