diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn
index 82a83cf..7ca92d9 100644
--- a/bts/BTS_Tests.ttcn
+++ b/bts/BTS_Tests.ttcn
@@ -2520,11 +2520,12 @@
 }
 
 /* Establish dedicated channel: L1CTL + RSL side */
-private function f_est_dchan(boolean encr_enable := false, RSL_IE_List more_ies := {}) runs on ConnHdlr {
+private function f_est_dchan(boolean encr_enable := false, RSL_IE_List more_ies := {},
+			     RSL_IE_ActivationType act_type := t_RSL_IE_ActType_IA) runs on ConnHdlr {
 	var ChannelDescription ch_desc;
 
 	/* Activate channel on BTS side */
-	f_rsl_chan_act(g_pars.chan_mode, encr_enable, more_ies);
+	f_rsl_chan_act(g_pars.chan_mode, encr_enable, more_ies, act_type := act_type);
 
 	/* Craft channel description (with or without frequency hopping parameters) */
 	if (g_pars.fhp.enabled) {
@@ -7169,19 +7170,22 @@
 }
 
 friend type record RllTestCase {
-	uint3_t		sapi,
-	RslLinkId	link_id,
-	octetstring	l3,
-	boolean		exp
+	uint3_t			sapi,
+	RslLinkId		link_id,
+	octetstring		l3,
+	boolean			exp,
+	RSL_IE_ActivationType	act_type
 }
 friend type record of RllTestCase RllTestCases;
 friend template RllTestCase t_EITC(template (present) uint3_t sapi,
 				   template (present) RslLinkId id,
-				   octetstring l3, boolean exp) := {
+				   octetstring l3, boolean exp,
+				   RSL_IE_ActivationType act_type := t_RSL_IE_ActType_IA) := {
 	sapi := sapi,
 	link_id := id,
 	l3 := l3,
-	exp := exp
+	exp := exp,
+	act_type := act_type
 }
 
 /* execute the same callback function with a set of different parameters (tcs) on a
@@ -7216,7 +7220,7 @@
 	RSL.clear;
 
 	/* activate the logical channel */
-	f_est_dchan();
+	f_est_dchan(act_type := tc.act_type);
 	L1CTL.clear;
 
 	f_tx_lapdm(ts_LAPDm_SABM(tc.sapi, cr_MO_CMD, true, tc.l3), tc.link_id);
@@ -7254,8 +7258,10 @@
 	var RllTestCases tcs := {
 		/* SAPI0 establishment (contention resolution) */
 		valueof(t_EITC(0, ts_RslLinkID_DCCH(0), '01020304'O, true)),
-		/* normal SAPI0 establishment */
-		valueof(t_EITC(0, ts_RslLinkID_DCCH(0), ''O, true)),
+		/* normal SAPI0 establishment (immediate assignment) */
+		valueof(t_EITC(0, ts_RslLinkID_DCCH(0), ''O, false)),
+		/* normal SAPI0 establishment (normal assignment) */
+		valueof(t_EITC(0, ts_RslLinkID_DCCH(0), ''O, true, t_RSL_IE_ActType_ASS)),
 		/* SAPI 3 doesn't support contention resolution */
 		valueof(t_EITC(3, ts_RslLinkID_DCCH(3), '01020304'O, false)),
 		valueof(t_EITC(3, ts_RslLinkID_SACCH(3), '01020304'O, false)),
