diff --git a/mongoose.c b/mongoose.c
index 60906d6bb4ec884c393c0ba2bd5f204db6a74673..71c8f582d1d65fc6c90af4cfba1f5808afaf9bd1 100644
--- a/mongoose.c
+++ b/mongoose.c
@@ -7779,12 +7779,10 @@ struct mg_connection *mg_connect_ws_opt(struct mg_mgr *mgr,
   struct mg_connection *nc = mg_connect_http_base(
       mgr, ev_handler, opts, "ws://", "wss://", url, &path, &addr);
 
-  if (nc == NULL) {
-    return NULL;
+  if (nc != NULL) {
+    mg_send_websocket_handshake2(nc, path, addr, protocol, extra_headers);
   }
 
-  mg_send_websocket_handshake2(nc, path, addr, protocol, extra_headers);
-
   MG_FREE(addr);
   return nc;
 }