diff --git a/bsc/BSC_Tests_VAMOS.ttcn b/bsc/BSC_Tests_VAMOS.ttcn
index 5caeeed..1958dc5 100644
--- a/bsc/BSC_Tests_VAMOS.ttcn
+++ b/bsc/BSC_Tests_VAMOS.ttcn
@@ -83,7 +83,7 @@
 const integer NUM_BTS := 3;
 const integer NUM_MSC := 3;
 
-private function f_rsl_chan_nr_to_subslot(RslChannelNr chan_nr)
+private function f_rsl_chan_nr_to_subslot(RslChannelNr chan_nr, boolean use_vamos_subslot_nr := false)
 return integer
 {
 	var integer subslot;
@@ -97,12 +97,19 @@
 			subslot := chan_nr.u.lm.sub_chan;
 		}
 		case (t_RslChanNr_Osmo_VAMOS_Bm(?)) {
-			/* TCH/F, always subslot 0 */
-			subslot := 0;
+			/* TCH/F shadow */
+			if (use_vamos_subslot_nr) {
+				subslot := 1;
+			} else {
+				subslot := 0;
+			}
 		}
 		case (t_RslChanNr_Osmo_VAMOS_Lm(?, ?)) {
-			/* TCH/H */
+			/* TCH/H shadow */
 			subslot := chan_nr.u.lm.sub_chan;
+			if (use_vamos_subslot_nr) {
+				subslot := subslot + 2;
+			}
 		}
 		case else {
 			setverdict(fail, "unsupported RslChannelNr type in f_rsl_chan_nr_to_subslot()");
@@ -201,10 +208,10 @@
 	}
 }
 
-private function f_lchan_str(integer bts_nr, integer trx_nr, RslChannelNr chan_nr)
+private function f_lchan_str(integer bts_nr, integer trx_nr, RslChannelNr chan_nr, boolean use_vamos_subslot_nr := false)
 return charstring
 {
-	var integer subslot := f_rsl_chan_nr_to_subslot(chan_nr);
+	var integer subslot := f_rsl_chan_nr_to_subslot(chan_nr, use_vamos_subslot_nr := use_vamos_subslot_nr);
 	return "lchan " & int2str(bts_nr) & " " & int2str(trx_nr) & " " & int2str(chan_nr.tn) & " " & int2str(subslot);
 }
 
@@ -217,7 +224,7 @@
 
 private function f_lchan_ensure_established(TELNETasp_PT vty, integer bts_nr, integer trx_nr, RslChannelNr chan_nr)
 {
-	var charstring lchan_str := f_lchan_str(bts_nr, trx_nr, chan_nr);
+	var charstring lchan_str := f_lchan_str(bts_nr, trx_nr, chan_nr, use_vamos_subslot_nr := true);
 	var charstring lchan_info := f_vty_transceive_ret(vty, "show " & lchan_str);
 	if (f_strstr(lchan_info, "State: ESTABLISHED") < 0) {
 		log("'show lchan' replied: ", lchan_info);
@@ -465,7 +472,7 @@
 	setverdict(pass);
 
 	f_sleep(1.0);
-	f_vty_transceive(BSCVTY, "show lchan summary");
+	f_lchan_ensure_established(BSCVTY, 0, 0, g_chan_nr);
 
 	f_verify_dtap();
 }
@@ -575,8 +582,7 @@
 	setverdict(pass);
 
 	f_sleep(1.0);
-	f_vty_transceive(BSCVTY, "show lchan summary");
-
+	f_lchan_ensure_established(BSCVTY, 0, 0, g_chan_nr);
 	f_verify_dtap();
 }
 
