diff --git a/src/knot/nameserver/requestor.c b/src/knot/nameserver/requestor.c
index 781555f31f855d3d651e7fc187e29c115c427f02..7224386528de0f4f7bb1169bd431fa403e283436 100644
--- a/src/knot/nameserver/requestor.c
+++ b/src/knot/nameserver/requestor.c
@@ -154,8 +154,8 @@ struct request *requestor_make(struct requestor *requestor,
 	}
 
 	request->state = NS_PROC_DONE;
-	request->data.origin = from;
-	request->data.remote = to;
+	memcpy(&request->data.origin, from, sizeof(struct sockaddr_storage));
+	memcpy(&request->data.remote, to, sizeof(struct sockaddr_storage));
 	request->data.fd = -1;
 	request->data.query = query;
 	return request;
@@ -168,8 +168,8 @@ int requestor_enqueue(struct requestor *requestor, struct request * request, voi
 	}
 
 	/* Fetch a bound socket. */
-	int fd = net_connected_socket(SOCK_STREAM, request->data.remote,
-	                              request->data.origin, O_NONBLOCK);
+	int fd = net_connected_socket(SOCK_STREAM, &request->data.remote,
+	                              &request->data.origin, O_NONBLOCK);
 	if (fd < 0) {
 		return KNOT_ECONN;
 	}
diff --git a/src/knot/nameserver/requestor.h b/src/knot/nameserver/requestor.h
index c31dd45b36500f06d2820f9aefa813f4302cd8c1..f03827de00c463dc66e3dd9f63c2f46089b21499 100644
--- a/src/knot/nameserver/requestor.h
+++ b/src/knot/nameserver/requestor.h
@@ -40,7 +40,7 @@ struct requestor {
 struct request_data {
 	node_t node;
 	int fd;
-	const struct sockaddr_storage *remote, *origin;
+	struct sockaddr_storage remote, origin;
 	knot_pkt_t *query;
 };