diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn
index 87a15ea..fe50e06 100644
--- a/bsc/BSC_Tests.ttcn
+++ b/bsc/BSC_Tests.ttcn
@@ -1251,6 +1251,8 @@
 	 } else {
 		setverdict(fail, "immediate assignment not rejected");
 	 }
+
+	f_shutdown_helper();
 }
 
 /* Test behavior if MSC never answers to CR */
@@ -3927,21 +3929,25 @@
 testcase TC_assignment_codec_amr_f_start_mode_auto() runs on test_CT {
 	f_TC_assignment_codec_amr(true, '209520882208'O, '11111111'B, '00000010'B,
 		start_mode := "auto");
+	f_shutdown_helper();
 }
 
 testcase TC_assignment_codec_amr_h_start_mode_auto() runs on test_CT {
 	f_TC_assignment_codec_amr(false, '2015208820'O, '10010101'B, '00010101'B,
 		start_mode := "auto");
+	f_shutdown_helper();
 }
 
 testcase TC_assignment_codec_amr_f_start_mode_4() runs on test_CT {
 	f_TC_assignment_codec_amr(true, '2b9520882208'O, '11111111'B, '00000010'B,
 		start_mode := "4");
+	f_shutdown_helper();
 }
 
 testcase TC_assignment_codec_amr_h_start_mode_4() runs on test_CT {
 	f_TC_assignment_codec_amr(false, '2b15208820'O, '10010101'B, '00010101'B,
 		start_mode := "4");
+	f_shutdown_helper();
 }
 
 private function f_disable_all_tch_f() runs on test_CT {
@@ -5090,6 +5096,7 @@
 	f_ctrs_bsc_and_bts_add(0, "interbsc_ho_in:attempted");
 	f_ctrs_bsc_and_bts_add(0, "interbsc_ho_in:completed");
 	f_ctrs_bsc_and_bts_verify();
+	f_shutdown_helper();
 }
 
 testcase TC_ho_into_this_bsc() runs on test_CT {
@@ -7896,6 +7903,7 @@
 	f_sleep(1.0);
 	vc_conn := f_start_handler(refers(f_tc_lcs_loc_req_for_active_ms), pars);
 	vc_conn.done;
+	f_shutdown_helper();
 }
 
 /* With an active lchan, start BSSMAP Perform Location Request on A interface, starting BSSMAP-LE Perform Location
@@ -7911,6 +7919,7 @@
 	f_sleep(1.0);
 	vc_conn := f_start_handler(refers(f_tc_lcs_loc_req_for_active_ms_ta_req), pars);
 	vc_conn.done;
+	f_shutdown_helper();
 }
 
 /* Clear the A-interface conn only, without doing anything on Abis. Useful for LCS, for cases where there is only an A
@@ -8016,6 +8025,7 @@
 
 	vc_conn := f_start_handler(refers(f_tc_lcs_loc_req_for_idle_ms), pars);
 	vc_conn.done;
+	f_shutdown_helper();
 }
 
 /* With no active lchan, start BSSMAP Perform Location Request on A interface, but omit IMSI; expect failure response.
@@ -8055,6 +8065,7 @@
 
 	vc_conn := f_start_handler(refers(f_tc_lcs_loc_req_no_subscriber), pars);
 	vc_conn.done;
+	f_shutdown_helper();
 }
 
 /* With an active lchan, start a Perform Location Request on the A-interface, but virtual SMLC does not answer with
@@ -8106,6 +8117,7 @@
 	f_sleep(1.0);
 	vc_conn := f_start_handler(refers(f_tc_lcs_loc_req_for_active_ms_le_timeout), pars);
 	vc_conn.done;
+	f_shutdown_helper();
 }
 
 /* With an active lchan, start a Perform Location Request on the A-interface, but virtual SMLC does not answer with
@@ -8122,6 +8134,7 @@
 	f_sleep(1.0);
 	vc_conn := f_start_handler(refers(f_tc_lcs_loc_req_for_active_ms_le_timeout2), pars);
 	vc_conn.done;
+	f_shutdown_helper();
 }
 
 /* With *no* active lchan, start a Perform Location Request, expecting that the MS will be Paged. */
@@ -8187,6 +8200,7 @@
 
 	vc_conn := f_start_handler(refers(f_tc_lcs_loc_req_for_idle_ms_no_pag_resp), pars);
 	vc_conn.done;
+	f_shutdown_helper();
 }
 
 /* During an ongoing Location Request, the MS sends a CM Service Request. Expect the same A-conn to be re-used / taken
@@ -8246,6 +8260,7 @@
 
 	vc_conn := f_start_handler(refers(f_tc_cm_service_during_lcs_loc_req), pars);
 	vc_conn.done;
+	f_shutdown_helper();
 }
 
 /* During an ongoing Perform Location Request, do a Handover, an expect a BSSLAP Reset message from the BSC to indicate
@@ -8318,6 +8333,7 @@
 	f_sleep(1.0);
 	vc_conn := f_start_handler(refers(f_tc_ho_during_lcs_loc_req), pars);
 	vc_conn.done;
+	f_shutdown_helper();
 }
 
 /* Attempt Complete Layer 3 without any MSC available (OS#4832) */
@@ -8359,6 +8375,7 @@
 
 	f_ctrs_bsc_add("mscpool:subscr:no_msc");
 	f_ctrs_bsc_verify();
+	f_shutdown_helper();
 }
 
 /* Dyn PDCH todo:
