diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn
index 6040a96..2fde8ae 100644
--- a/bsc/BSC_Tests.ttcn
+++ b/bsc/BSC_Tests.ttcn
@@ -170,6 +170,16 @@
 	{ "interbsc_ho_in:error", 0 }
 };
 
+const CounterNameVals counternames_bts_handover := {
+	{ "incoming_intra_bsc_ho:attempted", 0 },
+	{ "incoming_intra_bsc_ho:completed", 0 },
+	{ "incoming_intra_bsc_ho:stopped", 0 },
+	{ "incoming_intra_bsc_ho:no_channel", 0 },
+	{ "incoming_intra_bsc_ho:timeout", 0 },
+	{ "incoming_intra_bsc_ho:failed", 0 },
+	{ "incoming_intra_bsc_ho:error", 0 }
+};
+
 /* Set of all System Information received during one RSL port's startup.
  * Note that some System Information may be sent on RSL, but lacking actual SI data, to indicate that the BTS should not
  * broadcast that SI type. That will be reflected as 'omit' here.
@@ -762,8 +772,19 @@
 	f_ctrs_bsc_init(counternames);
 }
 
-private function f_ctrs_bsc_and_bts_add(integer bts_nr, charstring countername, integer val := 1) runs on test_CT {
+private function f_ctrs_bsc_and_bts_handover_init(integer bts_count := NUM_BTS) runs on test_CT {
+	var CounterNameVals bts_names := counternames_bsc_bts_handover & counternames_bts_handover;
+	g_ctr_bts := f_counter_name_vals_get_n(IPA_CTRL, "bts", bts_count, bts_names);
+	log("initial bts rate counters: ", g_ctr_bts);
+	f_ctrs_bsc_init(counternames_bsc_bts_handover);
+}
+
+private function f_ctrs_bts_add(integer bts_nr, charstring countername, integer val := 1) runs on test_CT {
 	f_counter_name_vals_list_add(g_ctr_bts, bts_nr, countername, val);
+}
+
+private function f_ctrs_bsc_and_bts_add(integer bts_nr, charstring countername, integer val := 1) runs on test_CT {
+	f_ctrs_bts_add(bts_nr, countername, val);
 	f_ctrs_bsc_add(countername, val);
 }
 
@@ -5156,7 +5177,7 @@
 
 	pars.expect_tsc := BTS_TSC[0];
 
-	f_ctrs_bsc_and_bts_init();
+	f_ctrs_bsc_and_bts_handover_init();
 
 	vc_conn := f_start_handler(refers(f_tc_ho_int), pars);
 	vc_conn.done;
@@ -5169,6 +5190,8 @@
 	f_ctrs_bsc_and_bts_add(0, "handover:completed");
 	f_ctrs_bsc_and_bts_add(0, "intra_bsc_ho:attempted");
 	f_ctrs_bsc_and_bts_add(0, "intra_bsc_ho:completed");
+	f_ctrs_bts_add(1, "incoming_intra_bsc_ho:attempted");
+	f_ctrs_bts_add(1, "incoming_intra_bsc_ho:completed");
 	f_ctrs_bsc_and_bts_verify();
 	f_shutdown_helper();
 }
@@ -5182,7 +5205,7 @@
 	f_vty_encryption_a5(enc_a5);
 	f_sleep(1.0);
 
-	f_ctrs_bsc_and_bts_init();
+	f_ctrs_bsc_and_bts_handover_init();
 
 	vc_conn := f_start_handler(refers(f_tc_ho_int), pars);
 	vc_conn.done;
@@ -5195,6 +5218,8 @@
 	f_ctrs_bsc_and_bts_add(0, "handover:completed");
 	f_ctrs_bsc_and_bts_add(0, "intra_bsc_ho:attempted");
 	f_ctrs_bsc_and_bts_add(0, "intra_bsc_ho:completed");
+	f_ctrs_bts_add(1, "incoming_intra_bsc_ho:attempted");
+	f_ctrs_bts_add(1, "incoming_intra_bsc_ho:completed");
 	f_ctrs_bsc_and_bts_verify();
 	f_vty_encryption_a5_reset();
 	f_shutdown_helper();
@@ -5302,7 +5327,7 @@
 	f_init(2, true);
 	f_sleep(1.0);
 
-	f_ctrs_bsc_and_bts_init();
+	f_ctrs_bsc_and_bts_handover_init();
 
 	vc_conn := f_start_handler(refers(f_tc_ho_int_radio_link_failure));
 	vc_conn.done;
@@ -5315,6 +5340,8 @@
 	f_ctrs_bsc_and_bts_add(0, "handover:stopped");
 	f_ctrs_bsc_and_bts_add(0, "intra_bsc_ho:attempted");
 	f_ctrs_bsc_and_bts_add(0, "intra_bsc_ho:stopped");
+	f_ctrs_bts_add(1, "incoming_intra_bsc_ho:attempted");
+	f_ctrs_bts_add(1, "incoming_intra_bsc_ho:stopped");
 	f_ctrs_bsc_and_bts_verify();
 	f_shutdown_helper();
 }
@@ -5422,7 +5449,7 @@
 	f_init(1, true);
 	f_sleep(1.0);
 
-	f_ctrs_bsc_and_bts_init();
+	f_ctrs_bsc_and_bts_handover_init();
 
 	vc_conn := f_start_handler(refers(f_tc_ho_out_of_this_bsc));
 	vc_conn.done;
@@ -5505,7 +5532,7 @@
 	f_init(1, true);
 	f_sleep(1.0);
 
-	f_ctrs_bsc_and_bts_init();
+	f_ctrs_bsc_and_bts_handover_init();
 
 	vc_conn := f_start_handler(refers(f_tc_ho_out_fail_no_msc_response));
 	vc_conn.done;
@@ -5586,7 +5613,7 @@
 	f_init(1, true);
 	f_sleep(1.0);
 
-	f_ctrs_bsc_and_bts_init();
+	f_ctrs_bsc_and_bts_handover_init();
 
 	vc_conn := f_start_handler(refers(f_tc_ho_out_fail_rr_ho_failure));
 	vc_conn.done;
@@ -5686,7 +5713,7 @@
 	f_init(1, true);
 	f_sleep(1.0);
 
-	f_ctrs_bsc_and_bts_init();
+	f_ctrs_bsc_and_bts_handover_init();
 
 	vc_conn := f_start_handler(refers(f_tc_ho_out_fail_no_result_after_ho_cmd));
 	vc_conn.done;
@@ -5803,7 +5830,7 @@
 	f_init(1, true);
 	f_sleep(1.0);
 
-	f_ctrs_bsc_and_bts_init();
+	f_ctrs_bsc_and_bts_handover_init();
 
 	pars.sccp_addr_msc := g_bssap[0].sccp_addr_own;
 	pars.sccp_addr_bsc := g_bssap[0].sccp_addr_peer;
@@ -5905,7 +5932,7 @@
 	}
 	f_sleep(1.0);
 
-	f_ctrs_bsc_and_bts_init();
+	f_ctrs_bsc_and_bts_handover_init();
 
 	pars.last_used_eutran_plmn := '323454'O;
 	pars.sccp_addr_msc := g_bssap[0].sccp_addr_own;
@@ -6012,7 +6039,7 @@
 	f_init(1, true);
 	f_sleep(1.0);
 
-	f_ctrs_bsc_and_bts_init();
+	f_ctrs_bsc_and_bts_handover_init();
 
 	pars.sccp_addr_msc := g_bssap[0].sccp_addr_own;
 	pars.sccp_addr_bsc := g_bssap[0].sccp_addr_peer;
@@ -6102,7 +6129,7 @@
 	f_init(1, true);
 	f_sleep(1.0);
 
-	f_ctrs_bsc_and_bts_init();
+	f_ctrs_bsc_and_bts_handover_init();
 
 	pars.sccp_addr_msc := g_bssap[0].sccp_addr_own;
 	pars.sccp_addr_bsc := g_bssap[0].sccp_addr_peer;
@@ -6191,7 +6218,7 @@
 	f_init(1, true);
 	f_sleep(1.0);
 
-	f_ctrs_bsc_and_bts_init();
+	f_ctrs_bsc_and_bts_handover_init();
 
 	pars.sccp_addr_msc := g_bssap[0].sccp_addr_own;
 	pars.sccp_addr_bsc := g_bssap[0].sccp_addr_peer;
@@ -6272,7 +6299,7 @@
 	f_init(1, true);
 	f_sleep(1.0);
 
-	f_ctrs_bsc_and_bts_init();
+	f_ctrs_bsc_and_bts_handover_init();
 
 	pars.sccp_addr_msc := g_bssap[0].sccp_addr_own;
 	pars.sccp_addr_bsc := g_bssap[0].sccp_addr_peer;
@@ -6482,7 +6509,7 @@
 	var MSC_ConnHdlr vc_conn;
 	f_init(3, true, guard_timeout := 60.0);
 	f_sleep(1.0);
-	f_ctrs_bsc_and_bts_init();
+	f_ctrs_bsc_and_bts_handover_init();
 	vc_conn := f_start_handler(refers(f_tc_ho_neighbor_config_1));
 	vc_conn.done;
 
@@ -6497,6 +6524,8 @@
 	f_ctrs_bsc_and_bts_add(0, "handover:failed");
 	f_ctrs_bsc_and_bts_add(0, "intra_bsc_ho:attempted");
 	f_ctrs_bsc_and_bts_add(0, "intra_bsc_ho:failed");
+	f_ctrs_bts_add(1, "incoming_intra_bsc_ho:attempted");
+	f_ctrs_bts_add(1, "incoming_intra_bsc_ho:failed");
 
 	/* 1.b */
 	f_ctrs_bsc_and_bts_add(0, "handover:attempted");
@@ -6511,6 +6540,8 @@
 	f_ctrs_bsc_and_bts_add(0, "handover:failed");
 	f_ctrs_bsc_and_bts_add(0, "intra_bsc_ho:attempted");
 	f_ctrs_bsc_and_bts_add(0, "intra_bsc_ho:failed");
+	f_ctrs_bts_add(1, "incoming_intra_bsc_ho:attempted");
+	f_ctrs_bts_add(1, "incoming_intra_bsc_ho:failed");
 
 	f_ctrs_bsc_and_bts_verify();
 	f_shutdown_helper();
@@ -6542,7 +6573,7 @@
 	var MSC_ConnHdlr vc_conn;
 	f_init(3, true, guard_timeout := 50.0);
 	f_sleep(1.0);
-	f_ctrs_bsc_and_bts_init();
+	f_ctrs_bsc_and_bts_handover_init();
 	vc_conn := f_start_handler(refers(f_tc_ho_neighbor_config_2));
 	vc_conn.done;
 
@@ -6557,6 +6588,8 @@
 	f_ctrs_bsc_and_bts_add(0, "handover:failed");
 	f_ctrs_bsc_and_bts_add(0, "intra_bsc_ho:attempted");
 	f_ctrs_bsc_and_bts_add(0, "intra_bsc_ho:failed");
+	f_ctrs_bts_add(1, "incoming_intra_bsc_ho:attempted");
+	f_ctrs_bts_add(1, "incoming_intra_bsc_ho:failed");
 
 	/* 2.b */
 	f_ctrs_bsc_and_bts_add(0, "handover:attempted");
@@ -6591,7 +6624,7 @@
 	var MSC_ConnHdlr vc_conn;
 	f_init(3, true, guard_timeout := 50.0);
 	f_sleep(1.0);
-	f_ctrs_bsc_and_bts_init();
+	f_ctrs_bsc_and_bts_handover_init();
 	vc_conn := f_start_handler(refers(f_tc_ho_neighbor_config_3));
 	vc_conn.done;
 
@@ -6610,6 +6643,8 @@
 	f_ctrs_bsc_and_bts_add(0, "handover:failed");
 	f_ctrs_bsc_and_bts_add(0, "intra_bsc_ho:attempted");
 	f_ctrs_bsc_and_bts_add(0, "intra_bsc_ho:failed");
+	f_ctrs_bts_add(2, "incoming_intra_bsc_ho:attempted");
+	f_ctrs_bts_add(2, "incoming_intra_bsc_ho:failed");
 
 	f_ctrs_bsc_and_bts_verify();
 	f_shutdown_helper();
@@ -6643,7 +6678,7 @@
 	var MSC_ConnHdlr vc_conn;
 	f_init(3, true, guard_timeout := 50.0);
 	f_sleep(1.0);
-	f_ctrs_bsc_and_bts_init();
+	f_ctrs_bsc_and_bts_handover_init();
 	vc_conn := f_start_handler(refers(f_tc_ho_neighbor_config_4));
 	vc_conn.done;
 
@@ -6693,7 +6728,7 @@
 	var MSC_ConnHdlr vc_conn;
 	f_init(3, true);
 	f_sleep(1.0);
-	f_ctrs_bsc_and_bts_init();
+	f_ctrs_bsc_and_bts_handover_init();
 	vc_conn := f_start_handler(refers(f_tc_ho_neighbor_config_5));
 	vc_conn.done;
 
@@ -6736,7 +6771,7 @@
 	var MSC_ConnHdlr vc_conn;
 	f_init(3, true);
 	f_sleep(1.0);
-	f_ctrs_bsc_and_bts_init();
+	f_ctrs_bsc_and_bts_handover_init();
 	vc_conn := f_start_handler(refers(f_tc_ho_neighbor_config_6));
 	vc_conn.done;
 
@@ -6780,7 +6815,7 @@
 	var MSC_ConnHdlr vc_conn;
 	f_init(3, true, guard_timeout := 50.0);
 	f_sleep(1.0);
-	f_ctrs_bsc_and_bts_init();
+	f_ctrs_bsc_and_bts_handover_init();
 	vc_conn := f_start_handler(refers(f_tc_ho_neighbor_config_7));
 	vc_conn.done;
 
@@ -6795,6 +6830,8 @@
 	f_ctrs_bsc_and_bts_add(0, "handover:failed");
 	f_ctrs_bsc_and_bts_add(0, "intra_bsc_ho:attempted");
 	f_ctrs_bsc_and_bts_add(0, "intra_bsc_ho:failed");
+	f_ctrs_bts_add(2, "incoming_intra_bsc_ho:attempted");
+	f_ctrs_bts_add(2, "incoming_intra_bsc_ho:failed");
 
 	/* 7.b */
 	/* "timeout" means a handover was triggered and started (which is all this test aims for) and the test ended the
@@ -9752,7 +9789,7 @@
 	f_init(1, true);
 	f_sleep(1.0);
 
-	f_ctrs_bsc_and_bts_init();
+	f_ctrs_bsc_and_bts_handover_init();
 
 	pars.ass_codec_list := valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR}));
 	vc_conn := f_start_handler(refers(f_TC_reassignment_codec), pars);
