diff --git a/msc/BSC_ConnectionHandler.ttcn b/msc/BSC_ConnectionHandler.ttcn
index 4f50b70..1d39ab4 100644
--- a/msc/BSC_ConnectionHandler.ttcn
+++ b/msc/BSC_ConnectionHandler.ttcn
@@ -186,11 +186,23 @@
 	}
 }
 
+type enumerated EstablishType {
+	EST_TYPE_MO_CALL,
+	EST_TYPE_PAG_RESP
+};
+
 /* helper function to fully establish a dedicated channel */
-function f_establish_fully(MobileIdentityLV mi)
+function f_establish_fully(MobileIdentityLV mi, EstablishType etype := EST_TYPE_MO_CALL)
 runs on BSC_ConnHdlr {
-	var PDU_ML3_MS_NW l3_info := valueof(ts_CM_SERV_REQ(CM_TYPE_MO_CALL, mi));
-	var PDU_DTAP_MT dtap_mt;
+	var PDU_ML3_MS_NW l3_info;
+	select (etype) {
+	case (EST_TYPE_MO_CALL) {
+		l3_info := valueof(ts_CM_SERV_REQ(CM_TYPE_MO_CALL, mi));
+		}
+	case (EST_TYPE_PAG_RESP) {
+		l3_info := valueof(ts_PAG_RESP(mi));
+		}
+	}
 
 	/* Send BSSAP_Conn_Req with COMPL L3 INFO to MSC */
 	f_bssap_compl_l3(l3_info);
@@ -199,24 +211,13 @@
 	if (g_pars.net.expect_ciph) {
 		/* implicit CM SERVICE ACCEPT? */
 	} else {
-		/* explicit CM SERVICE ACCEPT */
-		BSSAP.receive(tr_PDU_DTAP_MT(tr_CM_SERV_ACC));
+		if (etype == EST_TYPE_MO_CALL) {
+			/* explicit CM SERVICE ACCEPT */
+			BSSAP.receive(tr_PDU_DTAP_MT(tr_CM_SERV_ACC));
+		}
 	}
 }
 
-/* helper function to fully establish a dedicated channel */
-function f_establish_fully_pag(MobileIdentityLV mi)
-runs on BSC_ConnHdlr {
-	var PDU_ML3_MS_NW l3_info := valueof(ts_PAG_RESP(mi));
-	var PDU_DTAP_MT dtap_mt;
-
-	/* Send BSSAP_Conn_Req with COMPL L3 INFO to MSC */
-	f_bssap_compl_l3(l3_info);
-
-	f_mm_common();
-}
-
-
 /* build a PDU_ML3_MS_NW containing a Location Update by IMSI */
 function f_build_lu_imsi(hexstring imsi) runs on BSC_ConnHdlr return PDU_ML3_MS_NW
 {
diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn
index 322be5f..99580f6 100644
--- a/msc/MSC_Tests.ttcn
+++ b/msc/MSC_Tests.ttcn
@@ -1275,7 +1275,7 @@
 	/* MSC->BSC: expect PAGING from MSC */
 	BSSAP.receive(tr_BSSMAP_Paging(g_pars.imsi));
 	/* MS -> MSC: PAGING RESPONSE */
-	f_establish_fully_pag(valueof(ts_MI_IMSI_LV(g_pars.imsi)));
+	f_establish_fully(valueof(ts_MI_IMSI_LV(g_pars.imsi)), EST_TYPE_PAG_RESP);
 
 	f_create_mgcp_expect(ExpectCriteria:{omit,omit,omit});
 
