diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn
index d955f02..25d6a10 100644
--- a/msc/MSC_Tests.ttcn
+++ b/msc/MSC_Tests.ttcn
@@ -7187,21 +7187,31 @@
 	f_TC_auth_options(11);
 }
 
-friend function f_mo_csd(charstring bs_name, BIT1 async, GSM48_bcap_transp transp, GSM48_bcap_user_rate user_rate)
-		runs on BSC_ConnHdlr {
+private function f_set_cpars_csd(inout CallParameters cpars, charstring bs_name, BIT1 async,
+				 GSM48_bcap_transp transp, GSM48_bcap_user_rate user_rate) {
 	log("-----------------------------------------------");
-	log("MO CSD: " & bs_name);
+	log("CSD Bearer Service: " & bs_name);
 	log("-----------------------------------------------");
-	g_Tguard.start(20.0);
-
-	var CallParameters cpars := valueof(t_CallParams);
 
 	cpars.csd := true;
+
 	cpars.bearer_cap := valueof(ts_Bcap_csd);
 	cpars.bearer_cap.octet6.synchronous_asynchronous := async;
 	cpars.bearer_cap.octet6.connectionElement := int2bit(enum2int(transp), 2);
 	cpars.bearer_cap.octet6.userRate := int2bit(enum2int(user_rate), 4);
 
+	cpars.mncc_bearer_cap := valueof(ts_MNCC_bcap_data);
+	cpars.mncc_bearer_cap.data.async := bit2int(async);
+	cpars.mncc_bearer_cap.data.transp := transp;
+	cpars.mncc_bearer_cap.data.user_rate := user_rate;
+}
+
+friend function f_mo_csd(charstring bs_name, BIT1 async, GSM48_bcap_transp transp, GSM48_bcap_user_rate user_rate)
+		runs on BSC_ConnHdlr {
+	var CallParameters cpars := valueof(t_CallParams);
+
+	g_Tguard.start(20.0);
+	f_set_cpars_csd(cpars, bs_name, async, transp, user_rate);
 	f_perform_lu();
 	f_mo_call(cpars, 0.5);
 }
@@ -7236,19 +7246,10 @@
 
 friend function f_mt_csd(charstring bs_name, BIT1 async, GSM48_bcap_transp transp, GSM48_bcap_user_rate user_rate)
 		runs on BSC_ConnHdlr {
-	log("-----------------------------------------------");
-	log("MT CSD: " & bs_name);
-	log("-----------------------------------------------");
-	g_Tguard.start(20.0);
-
 	var CallParameters cpars := valueof(t_CallParams);
 
-	cpars.csd := true;
-	cpars.mncc_bearer_cap := valueof(ts_MNCC_bcap_data);
-	cpars.mncc_bearer_cap.data.async := bit2int(async);
-	cpars.mncc_bearer_cap.data.transp := transp;
-	cpars.mncc_bearer_cap.data.user_rate := user_rate;
-
+	g_Tguard.start(20.0);
+	f_set_cpars_csd(cpars, bs_name, async, transp, user_rate);
 	f_perform_lu();
 	f_mt_call(cpars, 0.5);
 }
