diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn
index 469d7b6..45c319d 100644
--- a/bsc/BSC_Tests.ttcn
+++ b/bsc/BSC_Tests.ttcn
@@ -9156,15 +9156,13 @@
 	RSL.send(emerg_setup_data_ind);
 }
 
-/* Test if the EMERGENCY SETUP gets passed on to the MSC via A when EMERGENCY
- * CALLS are permitted by the BSC config. */
-private function f_TC_assignment_emerg_setup_allow(charstring id) runs on MSC_ConnHdlr {
+/* expect EmergencySetup on BSSAP after calling f_assignment_emerg_setup() */
+private function f_assignment_emerg_setup_exp_bssap()
+runs on MSC_ConnHdlr {
 	var PDU_BSSAP emerg_setup_data_ind_bssap;
 	var PDU_ML3_MS_NW emerg_setup;
 	timer T := 3.0;
 
-	f_assignment_emerg_setup()
-
 	T.start;
 	alt {
 	[] BSSAP.receive(tr_BSSAP_DTAP) -> value emerg_setup_data_ind_bssap {
@@ -9180,6 +9178,14 @@
 		setverdict(fail, "timout waiting for EMERGENCY SETUP!");
 		}
 	}
+}
+
+/* Test if the EMERGENCY SETUP gets passed on to the MSC via A when EMERGENCY
+ * CALLS are permitted by the BSC config. */
+private function f_TC_assignment_emerg_setup_allow(charstring id) runs on MSC_ConnHdlr {
+
+	f_assignment_emerg_setup();
+	f_assignment_emerg_setup_exp_bssap();
 
 	setverdict(pass);
 	f_perform_clear();
@@ -9191,7 +9197,7 @@
 	var PDU_BSSAP emerg_setup_data_ind_bssap;
 	timer T := 3.0;
 
-	f_assignment_emerg_setup()
+	f_assignment_emerg_setup();
 
 	T.start;
 	alt {
@@ -10468,25 +10474,7 @@
 	 * another lchan. */
 	g_pars.ra := f_rnd_ra_emerg();
 	f_assignment_emerg_setup();
-
-	var PDU_BSSAP emerg_setup_data_ind_bssap;
-	timer T := 3.0;
-	T.start;
-	alt {
-	[] BSSAP.receive(tr_BSSAP_DTAP) -> value emerg_setup_data_ind_bssap {
-		var PDU_ML3_MS_NW verify_emerg_setup;
-		verify_emerg_setup := dec_PDU_ML3_MS_NW(emerg_setup_data_ind_bssap.pdu.dtap);
-		if (not isbound(verify_emerg_setup.msgs.cc.emergencySetup)) {
-			setverdict(fail, "no emergency setup");
-		}
-		}
-	[] BSSAP.receive {
-		setverdict(fail, "unexpected BSSAP message!");
-		}
-	[] T.timeout {
-		setverdict(fail, "timeout waiting for EMERGENCY SETUP!");
-		}
-	}
+	f_assignment_emerg_setup_exp_bssap();
 
 	/* Here would usually be a CC Call Proceeding from the MSC, but what does the BSC care about DTAP. */
 
@@ -10576,25 +10564,7 @@
 {
 	g_pars.ra := f_rnd_ra_emerg();
 	f_assignment_emerg_setup();
-
-	var PDU_BSSAP emerg_setup_data_ind_bssap;
-	timer T := 3.0;
-	T.start;
-	alt {
-	[] BSSAP.receive(tr_BSSAP_DTAP) -> value emerg_setup_data_ind_bssap {
-		var PDU_ML3_MS_NW verify_emerg_setup;
-		verify_emerg_setup := dec_PDU_ML3_MS_NW(emerg_setup_data_ind_bssap.pdu.dtap);
-		if (not ischosen(verify_emerg_setup.msgs.cc.emergencySetup)) {
-			setverdict(fail, "no emergency setup");
-		}
-		}
-	[] BSSAP.receive {
-		setverdict(fail, "unexpected BSSAP message!");
-		}
-	[] T.timeout {
-		setverdict(fail, "timeout waiting for EMERGENCY SETUP!");
-		}
-	}
+	f_assignment_emerg_setup_exp_bssap();
 
 	/* Start a Location Request to locate the emergency */
 	f_bssap_le_register_imsi(g_pars.imsi, omit);
