diff --git a/include/osmocom/gprs/gprs_ns2.h b/include/osmocom/gprs/gprs_ns2.h
index 728ca9f..c90d459 100644
--- a/include/osmocom/gprs/gprs_ns2.h
+++ b/include/osmocom/gprs/gprs_ns2.h
@@ -101,6 +101,7 @@
 		} congestion;
 		struct {
 			enum gprs_ns2_affecting_cause cause;
+			char *nsvc;
 			/* 48.016 5.2.2.6 transfer capability */
 			int transfer;
 			/* osmocom specific */
diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c
index b50daf4..6ddc58b 100644
--- a/src/gb/gprs_ns2.c
+++ b/src/gb/gprs_ns2.c
@@ -363,9 +363,11 @@
  *  \param[in] bvci BVCI to which the status relates
  *  \param[in] cause The cause of the status */
 void ns2_prim_status_ind(struct gprs_ns2_nse *nse,
+			 struct gprs_ns2_vc *nsvc,
 			 uint16_t bvci,
 			 enum gprs_ns2_affecting_cause cause)
 {
+	char nsvc_str[NS2_LL_MAX_STR];
 	struct osmo_gprs_ns2_prim nsp = {};
 	nsp.nsei = nse->nsei;
 	nsp.bvci = bvci;
@@ -373,6 +375,9 @@
 	nsp.u.status.transfer = -1;
 	nsp.u.status.first = nse->first;
 	nsp.u.status.persistent = nse->persistent;
+	if (nsvc)
+		nsp.u.status.nsvc = gprs_ns2_ll_str_buf(nsvc_str, sizeof(nsvc_str), nsvc);
+
 	osmo_prim_init(&nsp.oph, SAP_NS, PRIM_NS_STATUS,
 			PRIM_OP_INDICATION, NULL);
 	nse->nsi->cb(&nsp.oph, nse->nsi->cb_data);
@@ -430,7 +435,7 @@
 	if (!nsvc)
 		return;
 
-	ns2_prim_status_ind(nsvc->nse, 0, NS_AFF_CAUSE_VC_FAILURE);
+	ns2_prim_status_ind(nsvc->nse, nsvc, 0, NS_AFF_CAUSE_VC_FAILURE);
 
 	llist_del(&nsvc->list);
 	llist_del(&nsvc->blist);
@@ -608,7 +613,7 @@
 		gprs_ns2_free_nsvc(nsvc);
 	}
 
-	ns2_prim_status_ind(nse, 0, NS_AFF_CAUSE_FAILURE);
+	ns2_prim_status_ind(nse, NULL, 0, NS_AFF_CAUSE_FAILURE);
 
 	llist_del(&nse->list);
 	if (nse->bss_sns_fi)
@@ -986,7 +991,7 @@
 	if (unblocked) {
 		/* this is the first unblocked NSVC on an unavailable NSE */
 		nse->alive = true;
-		ns2_prim_status_ind(nse, 0, NS_AFF_CAUSE_RECOVERY);
+		ns2_prim_status_ind(nse, NULL, 0, NS_AFF_CAUSE_RECOVERY);
 		nse->first = false;
 		return;
 	}
@@ -1004,7 +1009,7 @@
 
 	/* nse became unavailable */
 	nse->alive = false;
-	ns2_prim_status_ind(nse, 0, NS_AFF_CAUSE_FAILURE);
+	ns2_prim_status_ind(nse, NULL, 0, NS_AFF_CAUSE_FAILURE);
 }
 
 /*! Create a new GPRS NS instance
diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h
index b480391..dee3ab7 100644
--- a/src/gb/gprs_ns2_internal.h
+++ b/src/gb/gprs_ns2_internal.h
@@ -221,6 +221,7 @@
 
 void gprs_ns2_sns_dump_vty(struct vty *vty, const struct gprs_ns2_nse *nse, bool stats);
 void ns2_prim_status_ind(struct gprs_ns2_nse *nse,
+			 struct gprs_ns2_vc *nsvc,
 			 uint16_t bvci,
 			 enum gprs_ns2_affecting_cause cause);
 void ns2_nse_notify_alive(struct gprs_ns2_vc *nsvc, bool alive);
diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c
index b2754f5..31f8a5f 100644
--- a/src/gb/gprs_ns2_sns.c
+++ b/src/gb/gprs_ns2_sns.c
@@ -686,7 +686,7 @@
 	struct ns2_sns_state *gss = (struct ns2_sns_state *) fi->priv;
 
 	if (old_state != GPRS_SNS_ST_UNCONFIGURED)
-		ns2_prim_status_ind(gss->nse, 0, NS_AFF_CAUSE_SNS_FAILURE);
+		ns2_prim_status_ind(gss->nse, NULL, 0, NS_AFF_CAUSE_SNS_FAILURE);
 
 	if (gss->num_max_ip4_remote > 0)
 		ns2_tx_sns_size(gss->sns_nsvc, true, gss->num_max_nsvcs, gss->num_max_ip4_remote, -1);
@@ -1126,7 +1126,7 @@
 static void ns2_sns_st_configured_onenter(struct osmo_fsm_inst *fi, uint32_t old_state)
 {
 	struct gprs_ns2_nse *nse = nse_inst_from_fi(fi);
-	ns2_prim_status_ind(nse, 0, NS_AFF_CAUSE_SNS_CONFIGURED);
+	ns2_prim_status_ind(nse, NULL, 0, NS_AFF_CAUSE_SNS_CONFIGURED);
 }
 
 static const struct osmo_fsm_state ns2_sns_bss_states[] = {
diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c
index 4fa53c1..0d30f12 100644
--- a/src/gb/gprs_ns2_vc_fsm.c
+++ b/src/gb/gprs_ns2_vc_fsm.c
@@ -318,8 +318,11 @@
 static void gprs_ns2_st_unblocked_on_enter(struct osmo_fsm_inst *fi, uint32_t old_state)
 {
 	struct gprs_ns2_vc_priv *priv = fi->priv;
+	struct gprs_ns2_vc *nsvc = priv->nsvc;
+	struct gprs_ns2_nse *nse = nsvc->nse;
 
-	ns2_nse_notify_unblocked(priv->nsvc, true);
+	ns2_nse_notify_unblocked(nsvc, true);
+	ns2_prim_status_ind(nse, nsvc, 0, NS_AFF_CAUSE_VC_RECOVERY);
 }
 
 static void gprs_ns2_st_unblocked(struct osmo_fsm_inst *fi, uint32_t event, void *data)
