diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn
index de7102e..353ab16 100644
--- a/bsc/BSC_Tests.ttcn
+++ b/bsc/BSC_Tests.ttcn
@@ -1298,11 +1298,10 @@
 				  template BSSMAP_FIELD_CellIdentificationList cid_list,
 				  BtsIdList bts_ids := { 0 },
 				  template RSL_ChanNeeded rsl_chneed := omit,
-				  template OCT4 tmsi := omit) runs on test_CT
+				  template (omit) OCT4 tmsi := omit) runs on test_CT
 {
 	var template BSSMAP_IE_ChannelNeeded bssmap_chneed;
-	/* FIXME (unused): var MobileIdentity mi; */
-	var template octetstring id_enc; /* FIXME */
+	var template MobileIdentityV mi;
 	var RSL_Message rx_rsl;
 	var integer paging_group := hex2int(imsi[lengthof(imsi)-1]);
 	var integer i;
@@ -1323,17 +1322,14 @@
 
 	f_bssap_tx_ud(ts_BSSMAP_Paging(imsi, cid_list, tmsi, bssmap_chneed));
 
-/* FIXME: Disabled due to bugs in both GSM_RR_Types and MobileL3_CommonIE_Types IMSI encoder
-	if (isvalue(tmsi)) {
-		mi := valueof(t_Osmo_MI_TMSI(oct2int(valueof(tmsi))));
+	if (not istemplatekind(tmsi, "omit")) {
+		mi := t_MI_TMSI(tmsi);
 	} else {
-		mi := valueof(ts_Osmo_MI_IMSI(imsi));
+		mi := tr_MI_IMSI(imsi);
 	}
-	id_enc := enc_MobileIdentity(mi);
-*/
-	id_enc := ?;
+
 	for (i := 0; i < sizeof(bts_ids); i := i + 1) {
-		rx_rsl := f_exp_ipa_rx(bts_ids[i], tr_RSL_PAGING_CMD(id_enc));
+		rx_rsl := f_exp_ipa_rx(bts_ids[i], tr_RSL_PAGING_CMD(mi));
 		/* check channel type, paging group */
 		if (rx_rsl.ies[1].body.paging_group != paging_group) {
 			setverdict(fail, "Paging for wrong paging group");
@@ -1352,7 +1348,7 @@
 		}
 		T.start;
 		alt {
-		[] IPA_RSL[i].receive(tr_ASP_RSL_UD(IPAC_PROTO_RSL_TRX0, tr_RSL_PAGING_CMD(id_enc))) {
+		[] IPA_RSL[i].receive(tr_ASP_RSL_UD(IPAC_PROTO_RSL_TRX0, tr_RSL_PAGING_CMD(mi))) {
 			setverdict(fail, "Paging on BTS ", i, " which is not part of ", bts_ids);
 			}
 		[] IPA_RSL[i].receive { repeat; }
