diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn
index 513e346..3effd52 100644
--- a/msc/MSC_Tests.ttcn
+++ b/msc/MSC_Tests.ttcn
@@ -2540,11 +2540,7 @@
 	timer T := 20.0;
 	T.start
 	alt {
-	[pars.ran_is_geran] BSSAP.receive(tr_BSSMAP_Paging(g_pars.imsi)) {
-		setverdict(fail, "paging seems not to stop!");
-		mtc.stop;
-		}
-	[not pars.ran_is_geran] BSSAP.receive(tr_RANAP_Paging(cs_domain, imsi_hex2oct(g_pars.imsi))) {
+	[] as_paging_any() {
 		setverdict(fail, "paging seems not to stop!");
 		mtc.stop;
 		}
@@ -2597,13 +2593,18 @@
 	timer T := 5.0;
 	T.start;
 	alt {
-	[g_pars.ran_is_geran] BSSAP.receive(tr_BSSMAP_Paging(g_pars.imsi)) {
-		setverdict(fail, "GERAN should not repeat Paging, but received a second Paging");
-		mtc.stop;
+	[] as_paging() {
+		if (g_pars.ran_is_geran) {
+			setverdict(fail, "GERAN should not repeat Paging, but received a second Paging");
+			mtc.stop;
+		} else {
+			log("UTRAN: second Paging received, as expected");
+			setverdict(pass);
 		}
-	[not g_pars.ran_is_geran] BSSAP.receive(tr_RANAP_Paging(cs_domain, imsi_hex2oct(g_pars.imsi))) {
-		log("UTRAN: second Paging received, as expected");
-		setverdict(pass);
+		}
+	[] as_paging_any() {
+		setverdict(fail, "Rx unexpected BSSMAP/RANAP Paging");
+		mtc.stop;
 		}
 	[] T.timeout {
 		if (g_pars.ran_is_geran) {
@@ -3578,13 +3579,11 @@
 	GSUP.send(gsup_req);
 	T.start;
 	alt {
-	[pars.ran_is_geran] BSSAP.receive(tr_BSSMAP_Paging(g_pars.imsi)) {
-		setverdict(pass);
+	[] as_paging() { setverdict(pass); }
+	[] as_paging_any() {
+		setverdict(fail, "Rx unexpected BSSMAP/RANAP Paging");
+		mtc.stop;
 		}
-	[not pars.ran_is_geran] BSSAP.receive(tr_RANAP_Paging(cs_domain, imsi_hex2oct(g_pars.imsi))) {
-		setverdict(pass);
-		}
-	/* We don't expect anything else */
 	[] as_unexp_gsup_or_bssap_msg();
 	[] T.timeout {
 		setverdict(fail, "Timeout waiting for Paging Request");
@@ -4193,13 +4192,11 @@
 	/* Send it to MSC and expect Paging Request */
 	TP.start;
 	alt {
-	[pars.ran_is_geran] BSSAP.receive(tr_BSSMAP_Paging(g_pars.imsi)) {
-		setverdict(pass);
+	[] as_paging() { setverdict(pass); }
+	[] as_paging_any() {
+		setverdict(fail, "Rx unexpected BSSMAP/RANAP Paging");
+		mtc.stop;
 		}
-	[not pars.ran_is_geran] BSSAP.receive(tr_RANAP_Paging(cs_domain, imsi_hex2oct(g_pars.imsi))) {
-		setverdict(pass);
-		}
-	/* We don't expect anything else */
 	[] as_unexp_gsup_or_bssap_msg();
 	[] TP.timeout {
 		setverdict(fail, "Timeout waiting for Paging Request");
@@ -4267,13 +4264,11 @@
 	/* Expect Paging Request */
 	TP.start;
 	alt {
-	[pars.ran_is_geran] BSSAP.receive(tr_BSSMAP_Paging(g_pars.imsi)) {
-		setverdict(pass);
+	[] as_paging() { setverdict(pass); }
+	[] as_paging_any() {
+		setverdict(fail, "Rx unexpected BSSMAP/RANAP Paging");
+		mtc.stop;
 		}
-	[not pars.ran_is_geran] BSSAP.receive(tr_RANAP_Paging(cs_domain, imsi_hex2oct(g_pars.imsi))) {
-		setverdict(pass);
-		}
-	/* We don't expect anything else */
 	[] as_unexp_gsup_or_bssap_msg();
 	[] TP.timeout {
 		setverdict(fail, "Timeout waiting for Paging Request");
@@ -4592,11 +4587,10 @@
 	f_vty_transceive(MSCVTY, "subscriber imsi " & hex2str(g_pars.imsi) & " paging");
 
 	alt {
-	[g_pars.ran_is_geran] BSSAP.receive(tr_BSSMAP_Paging(g_pars.imsi)); {
-		setverdict(pass);
-		}
-	[not g_pars.ran_is_geran] BSSAP.receive(tr_RANAP_Paging(cs_domain, imsi_hex2oct(g_pars.imsi))) {
-		setverdict(pass);
+	[] as_paging() { setverdict(pass); }
+	[] as_paging_any() {
+		setverdict(fail, "Rx unexpected BSSMAP/RANAP Paging");
+		mtc.stop;
 		}
 	[] SGsAP.receive {
 		setverdict(fail, "Received unexpected message on SGs");
