diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn
index c0a64a9..a9d7c9d 100644
--- a/bsc/BSC_Tests.ttcn
+++ b/bsc/BSC_Tests.ttcn
@@ -22,6 +22,7 @@
 
 friend module BSC_Tests_VAMOS;
 friend module BSC_Tests_CBSP;
+friend module BSC_Tests_LCLS;
 
 import from Misc_Helpers all;
 import from General_Types all;
diff --git a/bsc/BSC_Tests_LCLS.ttcn b/bsc/BSC_Tests_LCLS.ttcn
index 0e7692c..6686a34 100644
--- a/bsc/BSC_Tests_LCLS.ttcn
+++ b/bsc/BSC_Tests_LCLS.ttcn
@@ -249,7 +249,7 @@
 
 /* Send an ASSIGNMENT REQ with LCLS GCR only, without LCLS CFG or CSC */
 testcase TC_lcls_gcr_only() runs on lcls_test_CT {
-	var TestHdlrParams pars := valueof(t_def_TestHdlrPars);
+	var TestHdlrParams pars := f_gen_test_hdlr_pars();
 	var MSC_ConnHdlr vc_conn;
 
 	f_lcls_init();
@@ -335,7 +335,7 @@
 }
 
 private function f_tc_lcls_gcr_bway_connect(boolean hr, boolean bts_mode := false) runs on lcls_test_CT {
-	var TestHdlrParams pars_a := valueof(t_def_TestHdlrPars);
+	var TestHdlrParams pars_a := f_gen_test_hdlr_pars();
 	var TestHdlrParams pars_b;
 	var MSC_ConnHdlr vc_conn;
 
@@ -393,7 +393,7 @@
 /* Unless explicitly enabled, osmo-bsc will avoid LCLSs when the codecs or rates
  * of both legs are different */
 testcase TC_lcls_gcr_bway_codec_mismatch() runs on lcls_test_CT {
-	var TestHdlrParams pars_a := valueof(t_def_TestHdlrPars);
+	var TestHdlrParams pars_a := f_gen_test_hdlr_pars();
 	var TestHdlrParams pars_b;
 	var MSC_ConnHdlr vc_conn;
 	var MgcpCommand mgcp_cmd;
@@ -428,7 +428,7 @@
 
 /* Send an ASSIGNMENT REQ with LCLS CFG+CSC enabling LCLS but GCR doesn't match! */
 testcase TC_lcls_gcr_nomatch_bway_connect() runs on lcls_test_CT {
-	var TestHdlrParams pars_a := valueof(t_def_TestHdlrPars);
+	var TestHdlrParams pars_a := f_gen_test_hdlr_pars();
 	var TestHdlrParams pars_b;
 	var MSC_ConnHdlr vc_conn;
 	var MgcpCommand mgcp_cmd;
@@ -462,7 +462,7 @@
 
 /* Send an ASSIGNMENT REQ with LCLS GCR+CFG+CSC; expect no connect */
 testcase TC_lcls_gcr_bway_dont_connect() runs on lcls_test_CT {
-	var TestHdlrParams pars_a := valueof(t_def_TestHdlrPars);
+	var TestHdlrParams pars_a := f_gen_test_hdlr_pars();
 	var TestHdlrParams pars_b;
 	var MSC_ConnHdlr vc_conn;
 
@@ -487,7 +487,7 @@
 
 /* Send an ASSIGNMENT REQ with LCLS GCR+CFG+CSC; expect no connect */
 testcase TC_lcls_gcr_unsuppported_cfg() runs on lcls_test_CT {
-	var TestHdlrParams pars := valueof(t_def_TestHdlrPars);
+	var TestHdlrParams pars := f_gen_test_hdlr_pars();
 	var MSC_ConnHdlr vc_conn;
 
 	f_lcls_init();
@@ -508,7 +508,7 @@
 
 /* Send an ASSIGNMENT REQ with LCLS GCR+CFG+CSC; expect no connect */
 testcase TC_lcls_gcr_unsuppported_csc() runs on lcls_test_CT {
-	var TestHdlrParams pars_a := valueof(t_def_TestHdlrPars);
+	var TestHdlrParams pars_a := f_gen_test_hdlr_pars();
 	var TestHdlrParams pars_b;
 	var MSC_ConnHdlr vc_conn;
 
@@ -568,7 +568,7 @@
 
 /* Send an ASSIGNMENT REQ with "do not connect" and enable later using LCLS CTRL */
 testcase TC_lcls_gcr_bway_dont_connect_csc() runs on lcls_test_CT {
-	var TestHdlrParams pars_a := valueof(t_def_TestHdlrPars);
+	var TestHdlrParams pars_a := f_gen_test_hdlr_pars();
 	var TestHdlrParams pars_b;
 	var MSC_ConnHdlr vc_conn;
 	var MgcpCommand mgcp_cmd;
@@ -620,7 +620,7 @@
 }
 
 private function f_lcls_connect_break(boolean bts_mode := false) runs on lcls_test_CT {
-	var TestHdlrParams pars_a := valueof(t_def_TestHdlrPars);
+	var TestHdlrParams pars_a := f_gen_test_hdlr_pars();
 	var TestHdlrParams pars_b;
 	var MSC_ConnHdlr vc_conn;
 
@@ -676,7 +676,7 @@
 
 /* Establish LCLS "connect" followed by a SCCP-level release of one leg */
 testcase TC_lcls_connect_clear() runs on lcls_test_CT {
-	var TestHdlrParams pars_a := valueof(t_def_TestHdlrPars);
+	var TestHdlrParams pars_a := f_gen_test_hdlr_pars();
 	var TestHdlrParams pars_b;
 	var MSC_ConnHdlr vc_conn;
 	var MgcpCommand mgcp_cmd;
