Original text:
to determine a suitable Local Endpoint), as well as all properties necessary for candidate selection. <del> The Initiate() Action consumes the Preconnection.  Once Initiate() has been called, no further properties may be added to the Preconnection, and no subsequent establishment call may be made on the Preconnection. </del>  Once Initiate is called, the candidate Protocol Stack(s) may cause one or more candidate transport-layer connections to be created to Preconnection during the pre-establishment phase with a Local Endpoint specifier, as well as all properties necessary for Protocol Stack selection.  A Remote Endpoint may optionally be specified, to <del> constrain what Connections are accepted.  The Listen() Action returns a Listener object.  Once Listen() has been called, properties added to the Preconnection have no effect on the Listener and the Preconnection can be disposed of or reused. </del>  Listening continues until the global context shuts down, or until the Stop action is performed on the Listener object: Endpoint to the Remote Endpoint.  This corresponds to a TCP simultaneous open, for example. <del> The Rendezvous() Action consumes the Preconnection.  Once Rendezvous() has been called, no further properties may be added to the Preconnection, and no subsequent establishment call may be made on the Preconnection. </del>  The RendezvousDone<> Event occurs when a Connection is established with the Remote Endpoint.  For Connection-oriented transports, this

Reviewer comments:
Fixed text in the API draft to allow reusing Preconnections as discussed in . However, changes to the Preconnection MUST NOT have any effect on the Connections or Listeners created beforehand - I think normative language is useful here to really highlight this possible pitfall. I omitted any note on deep copy as that's just a way to implement this.
Great catch, it makes me wonder why we had closed issue ? Thanks for doing this!Thank you - fix achieved with minimal changes ;-)

Revised text:
to determine a suitable Local Endpoint), as well as all properties necessary for candidate selection.  <ins> The Initiate() Action returns a Connection object.  Once Initiate() has been called, any changes to the Preconnection MUST NOT have any effect on the Connection.  However, the Preconnection can be reused, e.g., to Initiate another Connection. </ins> Once Initiate is called, the candidate Protocol Stack(s) may cause one or more candidate transport-layer connections to be created to Preconnection during the pre-establishment phase with a Local Endpoint specifier, as well as all properties necessary for Protocol Stack selection.  A Remote Endpoint may optionally be specified, to  <ins> constrain what Connections are accepted. The Listen() Action returns a Listener object.  Once Listen() has been called, any changes to the Preconnection MUST NOT have any effect on the Listener.  The Preconnection can be disposed of or reused, e.g., to create another Listener. </ins> Listening continues until the global context shuts down, or until the Stop action is performed on the Listener object: Endpoint to the Remote Endpoint.  This corresponds to a TCP simultaneous open, for example.  <ins> The Rendezvous() Action returns a Connection object.  Once Rendezvous() has been called, any changes to the Preconnection MUST NOT have any effect on the Connection.  However, the Preconnection can be reused, e.g., for Rendezvous of another Connection. </ins> The RendezvousDone<> Event occurs when a Connection is established with the Remote Endpoint.  For Connection-oriented transports, this