diff --git a/fr/FR_Tests.ttcn b/fr/FR_Tests.ttcn
index f3652a3..973f262 100644
--- a/fr/FR_Tests.ttcn
+++ b/fr/FR_Tests.ttcn
@@ -85,6 +85,7 @@
 	timer g_Tguard;
 	var LLC_Entities llc;
 }
+type record of UE_CT ro_ue;
 
 type record UE_Pars {
 	hexstring imsi,
@@ -120,7 +121,7 @@
 }
 
 function f_start_ue(void_fn fn, charstring id, GbInstance gb, integer imsi_suffix, BSSGP_BVC_CT bvc_comp, float t_guard := 30.0)
-runs on test_CT
+runs on test_CT return UE_CT
 {
 	var UE_CT ue_comp;
 	var UE_Pars ue_pars := {
@@ -133,10 +134,13 @@
 	connect(ue_comp:BSSGP_SIG[0], bvc_comp:BSSGP_SP_SIG);
 	connect(ue_comp:BSSGP_PROC[0], bvc_comp:BSSGP_PROC);
 	ue_comp.start(f_handler_init(fn, id, ue_pars));
+
+	return ue_comp;
 }
 
 
 testcase TC_foo() runs on test_CT {
+	var ro_ue ues := {};
 
 	for (var integer i := 0; i < lengthof(mp_nsconfig); i := i+1) {
 		g_gb[i].cfg := {
@@ -151,20 +155,26 @@
 		log("Initializing Gb interface ", i, ": NSEI=", g_gb[i].cfg.nsei);
 		f_init_gb(g_gb[i], "gb", i);
 	}
+
 	for (var integer i := 0; i < lengthof(mp_nsconfig); i := i+1) {
 		for (var integer j := 0; j < mp_num_bvc; j := j+1) {
 			var BSSGP_BVC_CT bvc_comp := f_bssgp_get_bvci_ct(g_gb[i].cfg.bvc[j].bvci, BSSGP_PROC[i]);
 			for (var integer k := 0; k < mp_num_ue_in_bvc; k := k+1) {
 				var charstring id := "gb" & int2str(i) & "-bvc" & int2str(g_gb[i].cfg.bvc[j].bvci) & "-UEsim" & int2str(k);
-				f_start_ue(refers(f_ul_ud), id, g_gb[i], i*10000+j*100+k, bvc_comp);
+				var UE_CT ue;
+				ue := f_start_ue(refers(f_ul_ud), id, g_gb[i], i*10000+j*100+k, bvc_comp);
+				ues := ues & { ue };
 				/* a bit of staggering to ensure the timers above don't run all at the same time */
 				f_sleep(0.05);
 			}
 		}
 	}
-	while (true) {
-		f_sleep(100.0);
+
+	/* wait for all UE components to terminate */
+	for (var integer i := 0; i < lengthof(ues); i := i + 1) {
+		ues[i].done;
 	}
+	setverdict(pass);
 }
 
 control {
