diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c
index 1db2a8e..9cd83c4 100644
--- a/src/gb/gprs_ns2_vc_fsm.c
+++ b/src/gb/gprs_ns2_vc_fsm.c
@@ -58,8 +58,6 @@
 	bool initiator;
 	bool initiate_block;
 	bool initiate_reset;
-	/* if blocked by O&M/vty */
-	bool om_blocked;
 	/* if unitdata is forwarded to the user */
 	bool accept_unitdata;
 
@@ -268,7 +266,7 @@
 	struct gprs_ns2_inst *nsi = priv->nsvc->nse->nsi;
 
 	priv->initiate_reset = priv->initiate_block = priv->initiator;
-	priv->om_blocked = false;
+	priv->nsvc->om_blocked = false;
 
 	switch (event) {
 	case GPRS_NS2_EV_REQ_START:
@@ -345,7 +343,7 @@
 	}
 
 	ns2_nse_notify_unblocked(priv->nsvc, false);
-	if (priv->om_blocked) {
+	if (priv->nsvc->om_blocked) {
 		/* we are already blocked after a RESET */
 		if (old_state == GPRS_NS2_ST_RESET) {
 			osmo_timer_del(&fi->timer);
@@ -363,7 +361,7 @@
 {
 	struct gprs_ns2_vc_priv *priv = fi->priv;
 
-	if (priv->om_blocked) {
+	if (priv->nsvc->om_blocked) {
 		switch (event) {
 		case GPRS_NS2_EV_RX_BLOCK_ACK:
 			priv->accept_unitdata = false;
@@ -563,7 +561,7 @@
 	case GPRS_NS2_ST_BLOCKED:
 		if (priv->initiate_block) {
 			priv->N++;
-			if (priv->om_blocked) {
+			if (priv->nsvc->om_blocked) {
 				if (priv->N <= nsi->timeout[NS_TOUT_TNS_BLOCK_RETRIES]) {
 					osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_BLOCKED, nsi->timeout[NS_TOUT_TNS_BLOCK], 0);
 				} else {
@@ -717,14 +715,14 @@
 	case GPRS_NS2_EV_REQ_OM_BLOCK:
 		/* vty cmd: block */
 		priv->initiate_block = true;
-		priv->om_blocked = true;
+		priv->nsvc->om_blocked = true;
 		osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_BLOCKED, nsi->timeout[NS_TOUT_TNS_BLOCK], 0);
 		break;
 	case GPRS_NS2_EV_REQ_OM_UNBLOCK:
 		/* vty cmd: unblock*/
-		if (!priv->om_blocked)
+		if (!priv->nsvc->om_blocked)
 			return;
-		priv->om_blocked = false;
+		priv->nsvc->om_blocked = false;
 		if (fi->state == GPRS_NS2_ST_BLOCKED)
 			osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_BLOCKED, nsi->timeout[NS_TOUT_TNS_BLOCK], 0);
 		break;
@@ -834,7 +832,7 @@
 int ns2_vc_block(struct gprs_ns2_vc *nsvc)
 {
 	struct gprs_ns2_vc_priv *priv = nsvc->fi->priv;
-	if (priv->om_blocked)
+	if (priv->nsvc->om_blocked)
 		return -EALREADY;
 
 	return osmo_fsm_inst_dispatch(nsvc->fi, GPRS_NS2_EV_REQ_OM_BLOCK, NULL);
@@ -846,7 +844,7 @@
 int ns2_vc_unblock(struct gprs_ns2_vc *nsvc)
 {
 	struct gprs_ns2_vc_priv *priv = nsvc->fi->priv;
-	if (!priv->om_blocked)
+	if (!priv->nsvc->om_blocked)
 		return -EALREADY;
 
 	return osmo_fsm_inst_dispatch(nsvc->fi, GPRS_NS2_EV_REQ_OM_UNBLOCK, NULL);
