diff --git a/package/gluon-neighbour-info/src/gluon-neighbour-info.c b/package/gluon-neighbour-info/src/gluon-neighbour-info.c
index 119aaddc2a6040a1a8136fd465219b1a31f5e7ea..a45a94c81e35e764e71963a0d00195d65a72654a 100644
--- a/package/gluon-neighbour-info/src/gluon-neighbour-info.c
+++ b/package/gluon-neighbour-info/src/gluon-neighbour-info.c
@@ -95,7 +95,7 @@ ssize_t recvtimeout(int socket, char **recvbuffer, size_t *recvbuffer_len,
 
 	setsockopt(socket, SOL_SOCKET, SO_RCVTIMEO, &timeout_left, sizeof(timeout_left));
 
-	recvlen = recv(socket, NULL, 0, MSG_PEEK | MSG_TRUNC);
+	recvlen = recv(socket, *recvbuffer, 0, MSG_PEEK | MSG_TRUNC);
 	if (recvlen < 0)
 		return recvlen;
 
@@ -269,6 +269,8 @@ int main(int argc, char **argv) {
 		fflush(stdout);
 	}
 
+	resize_recvbuffer(&recvbuffer, &recvbuffer_len, 8192);
+
 	do {
 		ret = request(sock, &recvbuffer, &recvbuffer_len, &client_addr,
 			      request_string, sse, timeout, max_count);