diff --git a/include/osmocom/mslookup/mdns_rfc.h b/include/osmocom/mslookup/mdns_rfc.h
index 4aaee96..364b4d3 100644
--- a/include/osmocom/mslookup/mdns_rfc.h
+++ b/include/osmocom/mslookup/mdns_rfc.h
@@ -102,9 +102,9 @@
 void osmo_mdns_rfc_header_encode(struct msgb *msg, const struct osmo_mdns_rfc_header *hdr);
 int osmo_mdns_rfc_header_decode(const uint8_t *data, size_t data_len, struct osmo_mdns_rfc_header *hdr);
 
-int osmo_mdns_rfc_question_encode(void *ctx, struct msgb *msg, const struct osmo_mdns_rfc_question *qst);
+int osmo_mdns_rfc_question_encode(struct msgb *msg, const struct osmo_mdns_rfc_question *qst);
 struct osmo_mdns_rfc_question *osmo_mdns_rfc_question_decode(void *ctx, const uint8_t *data, size_t data_len);
 
-int osmo_mdns_rfc_record_encode(void *ctx, struct msgb *msg, const struct osmo_mdns_rfc_record *rec);
+int osmo_mdns_rfc_record_encode(struct msgb *msg, const struct osmo_mdns_rfc_record *rec);
 struct osmo_mdns_rfc_record *osmo_mdns_rfc_record_decode(void *ctx, const uint8_t *data, size_t data_len,
 							 size_t *record_len);
diff --git a/src/mslookup/mdns_msg.c b/src/mslookup/mdns_msg.c
index 78ea67a..fb291e1 100644
--- a/src/mslookup/mdns_msg.c
+++ b/src/mslookup/mdns_msg.c
@@ -40,7 +40,7 @@
 	qst.domain = req->domain;
 	qst.qtype = req->type;
 	qst.qclass = OSMO_MDNS_RFC_CLASS_IN;
-	if (osmo_mdns_rfc_question_encode(ctx, msg, &qst) != 0)
+	if (osmo_mdns_rfc_question_encode(msg, &qst) != 0)
 		return -EINVAL;
 
 	return 0;
@@ -106,7 +106,7 @@
 		rec.rdlength = ans_record->length;
 		rec.rdata = ans_record->data;
 
-		if (osmo_mdns_rfc_record_encode(ctx, msg, &rec) != 0)
+		if (osmo_mdns_rfc_record_encode(msg, &rec) != 0)
 			return -EINVAL;
 	}
 
diff --git a/src/mslookup/mdns_rfc.c b/src/mslookup/mdns_rfc.c
index 7bfd328..8a8cdec 100644
--- a/src/mslookup/mdns_rfc.c
+++ b/src/mslookup/mdns_rfc.c
@@ -69,7 +69,7 @@
 /*! Encode question section (RFC 1035 4.1.2).
  * \param[in] msgb  mesage buffer to which the encoded data will be appended.
  */
-int osmo_mdns_rfc_question_encode(void *ctx, struct msgb *msg, const struct osmo_mdns_rfc_question *qst)
+int osmo_mdns_rfc_question_encode(struct msgb *msg, const struct osmo_mdns_rfc_question *qst)
 {
 	uint8_t *buf;
 	size_t buf_len;
@@ -125,7 +125,7 @@
 /*! Encode one resource record (RFC 1035 4.1.3).
  * \param[in] msgb  mesage buffer to which the encoded data will be appended.
  */
-int osmo_mdns_rfc_record_encode(void *ctx, struct msgb *msg, const struct osmo_mdns_rfc_record *rec)
+int osmo_mdns_rfc_record_encode(struct msgb *msg, const struct osmo_mdns_rfc_record *rec)
 {
 	uint8_t *buf;
 	size_t buf_len;
diff --git a/tests/mslookup/mdns_test.c b/tests/mslookup/mdns_test.c
index 3e5a230..e9fc1fb 100644
--- a/tests/mslookup/mdns_test.c
+++ b/tests/mslookup/mdns_test.c
@@ -147,7 +147,7 @@
 		struct msgb *msg = msgb_alloc(4096, "dns_test");
 
 		PRINT_QST(&in, "in");
-		assert(osmo_mdns_rfc_question_encode(ctx, msg, &in) == 0);
+		assert(osmo_mdns_rfc_question_encode(msg, &in) == 0);
 		fprintf(stderr, "encoded: %s\n", osmo_hexdump(msgb_data(msg), msgb_length(msg)));
 		out = osmo_mdns_rfc_question_decode(ctx, msgb_data(msg), msgb_length(msg));
 		assert(out);
@@ -211,7 +211,7 @@
 		size_t record_len;
 
 		PRINT_REC(&in, "in");
-		assert(osmo_mdns_rfc_record_encode(ctx, msg, &in) == 0);
+		assert(osmo_mdns_rfc_record_encode(msg, &in) == 0);
 		fprintf(stderr, "encoded: %s\n", osmo_hexdump(msgb_data(msg), msgb_length(msg)));
 		out = osmo_mdns_rfc_record_decode(ctx, msgb_data(msg), msgb_length(msg), &record_len);
 		fprintf(stderr, "record_len: %lu\n", record_len);
