diff --git a/mesh/prov-acceptor.c b/mesh/prov-acceptor.c
index d983991..3d4d93b 100644
--- a/mesh/prov-acceptor.c
+++ b/mesh/prov-acceptor.c
mesh_send_cancel(bec_filter, sizeof(bec_filter));
mesh_send_cancel(&pkt_filter, sizeof(pkt_filter));
- if (prov->trans_tx) {
- if (prov->transport == PB_ADV)
- pb_adv_unreg(prov->trans_data);
- }
+ pb_adv_unreg(prov);
l_free(prov);
prov = NULL;
diff --git a/mesh/prov-initiator.c b/mesh/prov-initiator.c
index 669cf34..d915f2a 100644
--- a/mesh/prov-initiator.c
+++ b/mesh/prov-initiator.c
mesh_send_cancel(&pkt_filter, sizeof(pkt_filter));
+ pb_adv_unreg(prov);
+
l_free(prov);
prov = NULL;
}