The patch works for me (even if there is still a small freeze during about 1 second at the connection if the server doesn't answer), but creates an issue with the auto reconnect feature. It happens when the server doesn't answer the connection request (tested with a DROP on packets coming from it with iptables). The patch makes the function erc-server-connect to return even if the connection is not ready. Then erc-open and erc-server-reconnect do the same. Finally, in erc-process-sentinel-2, there is no error executing erc-server-reconnect, thus erc-server-reconnect-count is never incremented and is even reset. I made a patch that increments erc-server-reconnect-count before calling erc-server-reconnect instead, and resets it only when the connection is really ready, that is, in erc-connection-established.