diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn
index 8aa6199..df088bc 100644
--- a/msc/MSC_Tests.ttcn
+++ b/msc/MSC_Tests.ttcn
@@ -2044,7 +2044,6 @@
 private function f_tc_lu_and_mt_sms_paging_and_nothing(charstring id, BSC_ConnHdlrPars pars) runs on BSC_ConnHdlr {
 	var SmsParameters spars := valueof(t_SmsPars);
 	var OCT4 tmsi;
-	var integer page_count := 0;
 	f_init_handler(pars, 150.0);
 
 	/* Perform location update */
@@ -2060,21 +2059,8 @@
 
 	f_vty_sms_send(hex2str(pars.imsi), "2342", "Hello SMS");
 
-	/* Expect the MSC to page exactly 10 times before giving up */
-	alt {
-		[] BSSAP.receive(tr_BSSMAP_Paging(g_pars.imsi))
-		{
-			page_count := page_count + 1;
-
-			if (page_count < 10) {
-				repeat;
-			}
-		}
-		[] BSSAP.receive {
-			setverdict(fail, "unexpected BSSAP message received");
-			self.stop;
-		}
-	}
+	/* Expect the MSC to page exactly once */
+	BSSAP.receive(tr_BSSMAP_Paging(g_pars.imsi)) { };
 
 	/* Wait some time to make sure the MSC is not delivering any further
 	 * paging messages or anything else that could be unexpected. */
@@ -4423,21 +4409,8 @@
 	/* Trigger SMS via VTY */
 	f_vty_sms_send_conn_hdlr(hex2str(pars.imsi), "2342", "Hello SMS");
 
-	/* Expect the MSC/VLR to page exactly 10 times before giving up */
-	alt {
-		[] SGsAP.receive(exp_pag_req)
-		{
-			page_count := page_count + 1;
-
-			if (page_count < 10) {
-				repeat;
-			}
-		}
-		[] SGsAP.receive {
-			setverdict(fail, "unexpected SGsAP message received");
-			self.stop;
-		}
-	}
+	/* Expect the MSC/VLR to page exactly once */
+	SGsAP.receive(exp_pag_req);
 
 	/* Wait some time to make sure the MSC is not delivering any further
 	 * paging messages or anything else that could be unexpected. */
