diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn
index 61ae49e..c4ae469 100644
--- a/bsc/BSC_Tests.ttcn
+++ b/bsc/BSC_Tests.ttcn
@@ -3290,7 +3290,7 @@
 	connect(vc_conn:STATSD_PROC, vc_STATSD:STATSD_PROC);
 }
 
-function f_start_handler(void_fn fn, template (omit) TestHdlrParams pars := omit)
+function f_start_handler_create(template (omit) TestHdlrParams pars := omit)
 runs on test_CT return MSC_ConnHdlr {
 	var charstring id := testcasename();
 	var MSC_ConnHdlr vc_conn;
@@ -3300,12 +3300,23 @@
 	}
 	vc_conn := MSC_ConnHdlr.create(id);
 	f_connect_handler(vc_conn, bssap_idx);
+	return vc_conn;
+}
+
+function f_start_handler_run(MSC_ConnHdlr vc_conn, void_fn fn, template (omit) TestHdlrParams pars := omit)
+runs on test_CT return MSC_ConnHdlr {
+	var charstring id := testcasename();
 	/* Emit a marker to appear in the SUT's own logging output */
-	f_logp(BSCVTY, testcasename() & "() start");
+	f_logp(BSCVTY, id & "() start");
 	vc_conn.start(f_handler_init(fn, id, pars));
 	return vc_conn;
 }
 
+function f_start_handler(void_fn fn, template (omit) TestHdlrParams pars := omit)
+runs on test_CT return MSC_ConnHdlr {
+	return f_start_handler_run(f_start_handler_create(pars), fn, pars);
+}
+
 /* first function inside ConnHdlr component; sets g_pars + starts function */
 private function f_handler_init(void_fn fn, charstring id, template (omit) TestHdlrParams pars := omit)
 runs on MSC_ConnHdlr {
