diff --git a/lib/libwebsockets.c b/lib/libwebsockets.c
index 242bc729..c084cfc5 100644
--- a/lib/libwebsockets.c
+++ b/lib/libwebsockets.c
@@ -1593,8 +1593,6 @@ libwebsocket_service_fd(struct libwebsocket_context *context,
 			break;
 		}
 
-		/* accepting connection to main listener */
-
 		new_wsi = libwebsocket_create_new_server_wsi(context);
 		if (new_wsi == NULL) {
 #ifdef WIN32
@@ -1628,6 +1626,9 @@ libwebsocket_service_fd(struct libwebsocket_context *context,
 				break;
 			}
 
+			SSL_set_ex_data(new_wsi->ssl,
+				openssl_websocket_private_data_index, context);
+
 			SSL_set_fd(new_wsi->ssl, accept_fd);
 
 			n = SSL_accept(new_wsi->ssl);