diff --git a/src/sbbs3/js_socket.c b/src/sbbs3/js_socket.c
index fa848ab498934193f363e13d3a6d7702cba1f626..52f160281975ccb55199e1e483865819e5dff868 100644
--- a/src/sbbs3/js_socket.c
+++ b/src/sbbs3/js_socket.c
@@ -169,6 +169,7 @@ void DLLCALL js_timeval(JSContext* cx, jsval val, struct timeval* tv)
 static JSBool
 js_bind(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
 {
+	ulong		ip=0;
 	SOCKADDR_IN	addr;
 	private_t*	p;
 	ushort		port=0;
@@ -184,8 +185,9 @@ js_bind(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
 	if(argc)
 		port = js_port(cx,argv[0],p->type);
 	addr.sin_port = htons(port);
-	if(argc>1)
-		addr.sin_addr.s_addr = inet_addr(JS_GetStringBytes(JS_ValueToString(cx,argv[1])));
+	if(argc>1 
+		&& (ip=inet_addr(JS_GetStringBytes(JS_ValueToString(cx,argv[1]))))!=INADDR_NONE)
+		addr.sin_addr.s_addr = ip;
 
 	if(bind(p->sock, (struct sockaddr *) &addr, sizeof(addr))!=0) {
 		p->last_error=ERROR_VALUE;