diff --git a/src/sbbs3/js_socket.c b/src/sbbs3/js_socket.c
index aa657371f637d5ce37f3a70b57f5ebfc9f87ef2e..fb6eff8ac22950cd794acaafaf4b844340fdddd6 100644
--- a/src/sbbs3/js_socket.c
+++ b/src/sbbs3/js_socket.c
@@ -3359,6 +3359,17 @@ js_listening_socket_constructor(JSContext *cx, uintN argc, jsval *arglist)
 		}
 	}
 
+	for (i = 0; (jsuint)i < set->sock_count; ++i) {
+		char error[256] = "";
+		if (set_socket_options(scfg, set->socks[i].sock, protocol, error, sizeof(error)) != 0) {
+			JS_ReportError(cx, "Error (%s) setting socket options (for %s) on socket %d"
+				,error, protocol, set->socks[i].sock);
+			free(protocol);
+			free(set);
+			return JS_FALSE;
+		}
+	}
+
 	obj=JS_NewObject(cx, &js_socket_class, NULL, NULL);
 	JS_SET_RVAL(cx, arglist, OBJECT_TO_JSVAL(obj));