diff --git a/src/sbbs3/js_socket.c b/src/sbbs3/js_socket.c
index 95720085197e2e644d0acedb75f82a68549904d1..f1374058ecd6f7ea824a21de41a4425f7d439d0f 100644
--- a/src/sbbs3/js_socket.c
+++ b/src/sbbs3/js_socket.c
@@ -190,13 +190,13 @@ static ptrdiff_t js_socket_recv(js_socket_private_t *p, void *buf, size_t len, i
 				return total;
 			return ret;
 		}
-		if (!(flags & MSG_WAITALL) || p->nonblocking)
+		if ((!(flags & MSG_WAITALL)) || p->nonblocking)
 			return ret;
-		total += copied;
+		total += ret;
 		if(total>=(ptrdiff_t)len)
 			return total;
-		len-=copied;
-		buf=((uint8_t *)buf) + copied;
+		len-=ret;
+		buf=((uint8_t *)buf) + ret;
 
 		if(!socket_check(p->sock,NULL,NULL,0)) {
 			if (total > 0)