diff --git a/ircd/net.cc b/ircd/net.cc
index 009763e35..311b507df 100644
--- a/ircd/net.cc
+++ b/ircd/net.cc
@@ -286,13 +286,13 @@ noexcept try
 	          std::string(*this),
 	          string(sock->remote()));
 
-/*
-	static const asio::socket_base::keep_alive keep_alive(true);
-	static const asio::socket_base::linger linger(true, 30);
-	sock->sd.set_option(keep_alive);
-	sock->sd.set_option(linger);
-	sock->sd.non_blocking(true);
-*/
+	//static const asio::socket_base::keep_alive keep_alive(true);
+	//sock->sd.set_option(keep_alive);
+
+	//static const asio::socket_base::linger linger(true, 30);
+	//sock->sd.set_option(linger);
+
+	//sock->sd.non_blocking(false);
 
 	static const auto handshake_type
 	{
@@ -304,7 +304,8 @@ noexcept try
 		std::bind(&acceptor::handshake, this, ph::_1, sock)
 	};
 
-	sock->ssl.async_handshake(handshake_type, handshake);
+	sock->ssl.async_handshake(handshake_type, std::move(handshake));
+	next();
 }
 catch(const std::exception &e)
 {
@@ -382,15 +383,16 @@ ircd::net::listener::acceptor::configure(const json::object &opts)
 
 	ssl.set_options
 	(
-		ssl.default_workarounds
+		//ssl.default_workarounds
 		//| ssl.no_tlsv1
 		//| ssl.no_tlsv1_1
-		| ssl.no_tlsv1_2
+		//| ssl.no_tlsv1_2
 		//| ssl.no_sslv2
-		| ssl.no_sslv3
-		//| ssl.single_dh_use
+		//| ssl.no_sslv3
+		ssl.single_dh_use
 	);
 
+
 	//TODO: XXX
 	ssl.set_password_callback([this]
 	(const auto &size, const auto &purpose)