diff --git a/src/agent_tlv.c b/src/agent_tlv.c
index 5a9a1604123d5d7525d67c5711cb6fec62865f99..799ffd0d21befc21a8b33f0c278c20ad3e463f45 100644
--- a/src/agent_tlv.c
+++ b/src/agent_tlv.c
@@ -3305,6 +3305,7 @@ put_tlv:
 int agent_gen_bk_sta_radio_cap_tlv(struct agent *a, struct cmdu_buff *cmdu,
 				   struct wifi_radio_element *re)
 {
+	uint8_t empty[6] = {};
 	struct tlv_bsta_radio_cap *p;
 	struct tlv *t;
 	int ret;
@@ -3322,9 +3323,13 @@ int agent_gen_bk_sta_radio_cap_tlv(struct agent *a, struct cmdu_buff *cmdu,
 	t->len = 7;
 	p = (struct tlv_bsta_radio_cap *) t->data;
 	memcpy(p->radio, re->macaddr, 6);
-	memcpy(p->macaddr, re->bk.macaddr, 6);
-	p->macaddr_included = BSTA_MACADDRESS_INCLUDED;
-	t->len += 6;
+
+	p->macaddr_included = 0;
+	if (memcmp(re->bk.macaddr, empty, 6)) {
+		memcpy(p->macaddr, re->bk.macaddr, 6);
+		p->macaddr_included = BSTA_MACADDRESS_INCLUDED;
+		t->len += 6;
+	}
 
 	ret = cmdu_put_tlv(cmdu, t);
 	if (ret) {