bsc_init: Don't drop all BTSs because a single BTS had an error
diff --git a/openbsc/src/libbsc/bsc_init.c b/openbsc/src/libbsc/bsc_init.c
index 153355d..a19179d 100644
--- a/openbsc/src/libbsc/bsc_init.c
+++ b/openbsc/src/libbsc/bsc_init.c
@@ -43,7 +43,7 @@
 /* Callback function for NACK on the OML NM */
 static int oml_msg_nack(struct nm_nack_signal_data *nack)
 {
-	int i;
+	struct gsm_bts *bts;
 
 	if (nack->mt == NM_MT_SET_BTS_ATTR_NACK) {
 
@@ -58,11 +58,13 @@
 	return 0;
 
 drop_bts:
-	for (i = 0; i < bsc_gsmnet->num_bts; ++i) {
-		struct gsm_bts *bts = gsm_bts_num(bsc_gsmnet, i);
-		if (is_ipaccess_bts(bts))
-			ipaccess_drop_oml(bts);
-	}
+	if (!nack->msg || !nack->msg->trx)
+		return 0;
+
+	bts = nack->msg->trx->bts;
+
+	if (is_ipaccess_bts(bts))
+		ipaccess_drop_oml(bts);
 
 	return 0;
 }