diff --git a/openbsc/src/libbsc/abis_nm.c b/openbsc/src/libbsc/abis_nm.c
index 027a263..a01826b 100644
--- a/openbsc/src/libbsc/abis_nm.c
+++ b/openbsc/src/libbsc/abis_nm.c
@@ -114,10 +114,8 @@
 				   "OML");
 }
 
-int _abis_nm_sendmsg(struct msgb *msg, int to_trx_oml)
+int _abis_nm_sendmsg(struct msgb *msg)
 {
-	struct e1inp_sign_link *sign_link = msg->dst;
-
 	msg->l2h = msg->data;
 
 	if (!msg->dst) {
@@ -125,12 +123,6 @@
 		return -EINVAL;
 	}
 
-	/* Check for TRX-specific OML link first */
-	if (to_trx_oml) {
-		if (!sign_link->trx->oml_link)
-			return -ENODEV;
-		msg->dst = sign_link->trx->oml_link;
-	}
 	return abis_sendmsg(msg);
 }
 
@@ -142,7 +134,7 @@
 	/* queue OML messages */
 	if (llist_empty(&bts->abis_queue) && !bts->abis_nm_pend) {
 		bts->abis_nm_pend = OBSC_NM_W_ACK_CB(msg);
-		return _abis_nm_sendmsg(msg, 0);
+		return _abis_nm_sendmsg(msg);
 	} else {
 		msgb_enqueue(&bts->abis_queue, msg);
 		return 0;
@@ -508,7 +500,7 @@
 	while (!llist_empty(&bts->abis_queue)) {
 		msg = msgb_dequeue(&bts->abis_queue);
 		wait = OBSC_NM_W_ACK_CB(msg);
-		_abis_nm_sendmsg(msg, 0);
+		_abis_nm_sendmsg(msg);
 
 		if (wait)
 			break;
diff --git a/openbsc/src/libbsc/abis_om2000.c b/openbsc/src/libbsc/abis_om2000.c
index 2216462..e2e0578 100644
--- a/openbsc/src/libbsc/abis_om2000.c
+++ b/openbsc/src/libbsc/abis_om2000.c
@@ -799,8 +799,8 @@
 
 static int abis_om2k_sendmsg(struct gsm_bts *bts, struct msgb *msg)
 {
-	struct e1inp_sign_link *sign_link = (struct e1inp_sign_link *)msg;
 	struct abis_om2k_hdr *o2h;
+	struct gsm_bts_trx *trx;
 	int to_trx_oml;
 
 	msg->l2h = msg->data;
@@ -814,9 +814,8 @@
 	case OM2K_MO_CLS_TX:
 	case OM2K_MO_CLS_RX:
 		/* Route through per-TRX OML Link to the appropriate TRX */
-		to_trx_oml = 1;
-		sign_link->trx = gsm_bts_trx_by_nr(bts, o2h->mo.inst);
-		if (!sign_link->trx) {
+		trx = gsm_bts_trx_by_nr(bts, o2h->mo.inst);
+		if (!trx) {
 			LOGP(DNM, LOGL_ERROR, "MO=%s Tx Dropping msg to "
 				"non-existing TRX\n", om2k_mo_name(&o2h->mo));
 			return -ENODEV;
@@ -824,9 +823,8 @@
 		break;
 	case OM2K_MO_CLS_TS:
 		/* Route through per-TRX OML Link to the appropriate TRX */
-		to_trx_oml = 1;
-		sign_link->trx = gsm_bts_trx_by_nr(bts, o2h->mo.assoc_so);
-		if (!sign_link->trx) {
+		trx = gsm_bts_trx_by_nr(bts, o2h->mo.assoc_so);
+		if (!trx) {
 			LOGP(DNM, LOGL_ERROR, "MO=%s Tx Dropping msg to "
 				"non-existing TRX\n", om2k_mo_name(&o2h->mo));
 			return -ENODEV;
@@ -834,12 +832,12 @@
 		break;
 	default:
 		/* Route through the IXU/DXU OML Link */
-		sign_link->trx = bts->c0;
-		to_trx_oml = 0;
+		trx = bts->c0;
 		break;
 	}
+	msg->dst = trx->oml_link;
 
-	return _abis_nm_sendmsg(msg, to_trx_oml);
+	return _abis_nm_sendmsg(msg);
 }
 
 static void fill_om2k_hdr(struct abis_om2k_hdr *o2h, const struct abis_om2k_mo *mo,
