diff --git a/openbsc/include/openbsc/gsm_data_shared.h b/openbsc/include/openbsc/gsm_data_shared.h
index 51e0965..ab298c9 100644
--- a/openbsc/include/openbsc/gsm_data_shared.h
+++ b/openbsc/include/openbsc/gsm_data_shared.h
@@ -90,6 +90,7 @@
 	const char *name;
 	struct gsm_nm_state nm_state;
 	struct tlv_parsed *nm_attr;
+	struct gsm_bts *bts;
 };
 
 #define MAX_A5_KEY_LEN	(128/8)
diff --git a/openbsc/src/libcommon/gsm_data_shared.c b/openbsc/src/libcommon/gsm_data_shared.c
index 42da893..4c4c3ed 100644
--- a/openbsc/src/libcommon/gsm_data_shared.c
+++ b/openbsc/src/libcommon/gsm_data_shared.c
@@ -34,6 +34,11 @@
 
 #include <openbsc/gsm_data.h>
 
+static void gsm_mo_init(struct gsm_abis_mo *mo, struct gsm_bts *bts)
+{
+	mo->bts = bts;
+}
+
 static const struct value_string pchan_names[] = {
 	{ GSM_PCHAN_NONE,	"NONE" },
 	{ GSM_PCHAN_CCCH,	"CCCH" },
@@ -112,6 +117,9 @@
 	trx->nr = bts->num_trx++;
 	trx->mo.nm_state.administrative = NM_STATE_UNLOCKED;
 
+	gsm_mo_init(&trx->mo, bts);
+	gsm_mo_init(&trx->bb_transc.mo, bts);
+
 	for (k = 0; k < TRX_NR_TS; k++) {
 		struct gsm_bts_trx_ts *ts = &trx->ts[k];
 		int l;
@@ -121,6 +129,8 @@
 		ts->pchan = GSM_PCHAN_NONE;
 		ts->tsc = -1;
 
+		gsm_mo_init(&ts->mo, bts);
+
 		ts->hopping.arfcns.data_len = sizeof(ts->hopping.arfcns_data);
 		ts->hopping.arfcns.data = ts->hopping.arfcns_data;
 		ts->hopping.ma.data_len = sizeof(ts->hopping.ma_data);
@@ -144,6 +154,7 @@
 	return trx;
 }
 
+
 static const uint8_t bts_nse_timer_default[] = { 3, 3, 3, 3, 30, 3, 10 };
 static const uint8_t bts_cell_timer_default[] =
 				{ 3, 3, 3, 3, 3, 10, 3, 10, 3, 10, 3 };
@@ -160,14 +171,20 @@
 	INIT_LLIST_HEAD(&bts->trx_list);
 	bts->ms_max_power = 15;	/* dBm */
 
+	gsm_mo_init(&bts->mo, bts);
+	gsm_mo_init(&bts->site_mgr.mo, bts);
+
 	for (i = 0; i < ARRAY_SIZE(bts->gprs.nsvc); i++) {
 		bts->gprs.nsvc[i].bts = bts;
 		bts->gprs.nsvc[i].id = i;
+		gsm_mo_init(&bts->gprs.nsvc[i].mo, bts);
 	}
 	memcpy(&bts->gprs.nse.timer, bts_nse_timer_default,
 		sizeof(bts->gprs.nse.timer));
+	gsm_mo_init(&bts->gprs.nse.mo, bts);
 	memcpy(&bts->gprs.cell.timer, bts_cell_timer_default,
 		sizeof(bts->gprs.cell.timer));
+	gsm_mo_init(&bts->gprs.cell.mo, bts);
 
 	/* create our primary TRX */
 	bts->c0 = gsm_bts_trx_alloc(bts);
