diff --git a/src/sbbs3/js_socket.c b/src/sbbs3/js_socket.c
index 70efee6226b1b1c56b3e49cecd5b4145dc9bc5a5..6b6c2a7675f164c86ce7701bd1c63f6c2e0f2662 100644
--- a/src/sbbs3/js_socket.c
+++ b/src/sbbs3/js_socket.c
@@ -1331,7 +1331,6 @@ js_recvline(JSContext *cx, uintN argc, jsval *arglist)
 	start=time(NULL);
 	rc=JS_SUSPENDREQUEST(cx);
 	for(i=0;i<len;) {
-
 		if(p->session==-1) {
 			switch(js_sock_read_check(p,start,timeout,i)) {
 				case 1:
@@ -1353,22 +1352,14 @@ js_recvline(JSContext *cx, uintN argc, jsval *arglist)
 				break;
 			}
 			else {
+				if (got == 0) {
+					free(buf);
+					return(JS_TRUE);	/* time-out */
+				}
 				if (got == -1) {
 					len = 0;
 					continue;
 				}
-				switch(js_sock_read_check(p,start,timeout,i)) {
-					case 1:
-						JS_SET_RVAL(cx, arglist, JSVAL_NULL);
-						JS_RESUMEREQUEST(cx, rc);
-						free(buf);
-						return(JS_TRUE);	/* time-out */
-					case 2:
-						len=0;
-						continue;
-					case 3:
-						continue;
-				}
 			}
 		}