diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn
index 6902744..439b234 100644
--- a/bsc/BSC_Tests.ttcn
+++ b/bsc/BSC_Tests.ttcn
@@ -1301,15 +1301,13 @@
 	f_wait_oml(bts_idx, "connected", 5.0);
 
 	/* Set up BTS with VTY commands: */
-	if (Misc_Helpers.f_osmo_repo_is("nightly")) {
-		f_vty_enter_cfg_bts(BSCVTY, bts_idx);
-		if (g_osmux_enabled_bts) {
-			f_vty_transceive(BSCVTY, "osmux on");
-		} else {
-			f_vty_transceive(BSCVTY, "osmux off");
-		}
-		f_vty_transceive(BSCVTY, "end");
+	f_vty_enter_cfg_bts(BSCVTY, bts_idx);
+	if (g_osmux_enabled_bts) {
+		f_vty_transceive(BSCVTY, "osmux on");
+	} else {
+		f_vty_transceive(BSCVTY, "osmux off");
 	}
+	f_vty_transceive(BSCVTY, "end");
 }
 
 function f_init_bts_and_check_sysinfo(integer bts_idx := 0,
@@ -3616,9 +3614,7 @@
 
 	/* read counters before paging */
 	paging_attempted_bsc := f_ctrl_get_ratectr_abs(IPA_CTRL, "bsc", 0, "paging:attempted");
-	if (Misc_Helpers.f_osmo_repo_is("nightly")) { /* osmo-bsc > 1.8.0 */
-		paging_expired_bsc := f_ctrl_get_ratectr_abs(IPA_CTRL, "bsc", 0, "paging:expired");
-	}
+	paging_expired_bsc := f_ctrl_get_ratectr_abs(IPA_CTRL, "bsc", 0, "paging:expired");
 	for (i := 0; i < NUM_BTS; i := i+1) {
 		paging_attempted_bts[i] := f_ctrl_get_ratectr_abs(IPA_CTRL, "bts", i, "paging:attempted");
 		paging_expired_bts[i] := f_ctrl_get_ratectr_abs(IPA_CTRL, "bts", i, "paging:expired");
@@ -3635,9 +3631,7 @@
 
 	/* assume that 12s later the paging on all BTSs have expired and hence incremented by 1 */
 	f_sleep(12.0);
-	if (Misc_Helpers.f_osmo_repo_is("nightly")) { /* osmo-bsc > 1.8.0 */
-		f_ctrl_get_exp_ratectr_abs(IPA_CTRL, "bsc", 0, "paging:expired", paging_expired_bsc+1);
-	}
+	f_ctrl_get_exp_ratectr_abs(IPA_CTRL, "bsc", 0, "paging:expired", paging_expired_bsc+1);
 	for (i := 0; i < NUM_BTS; i := i+1) {
 		f_ctrl_get_exp_ratectr_abs(IPA_CTRL, "bts", i, "paging:expired",
 						paging_expired_bts[i]+1);
@@ -12454,12 +12448,9 @@
 	execute( TC_chan_alloc_algo_ass_dynamic() );
 
 	/* MGW pool */
-	/* TODO: this conditional canbe dropped once osmo-bsc >1.10.0 is released: */
-	if (Misc_Helpers.f_osmo_repo_is("nightly")) {
-		execute( TC_mgwpool_all_used() );
-		execute( TC_mgwpool_blocked_not_used() );
-		execute( TC_mgwpool_pin_bts() );
-	}
+	execute( TC_mgwpool_all_used() );
+	execute( TC_mgwpool_blocked_not_used() );
+	execute( TC_mgwpool_pin_bts() );
 
 	execute( TC_ho_meas_rep_multi_band() );
 
diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn
index 9f7d17a..d32e3bb 100644
--- a/gbproxy/GBProxy_Tests.ttcn
+++ b/gbproxy/GBProxy_Tests.ttcn
@@ -3701,10 +3701,8 @@
 
 control {
 	execute( TC_BVC_bringup() );
-	/* Depends on osmo-gbproxy > 0.2.0 */
-	if (Misc_Helpers.f_osmo_repo_is("nightly")) {
-		execute( TC_BVC_bringup_conflicting() );
-	}
+	execute( TC_BVC_bringup_conflicting() );
+
 	execute( TC_ul_unitdata() );
 	execute( TC_ul_unitdata_pool_failure() );
 	execute( TC_dl_unitdata() );
@@ -3786,10 +3784,8 @@
 
 	execute( TC_flush_ll_bvci_new() );
 
-	/* Depends on osmo-gbproxy > 0.2.0 */
-	if (Misc_Helpers.f_osmo_repo_is("nightly")) {
-		execute( TC_flush_ll_no_bvci_new() );
-	}
+	execute( TC_flush_ll_no_bvci_new() );
+
 	execute( TC_fc_bvc() );
 	execute( TC_fc_ms() );
 	execute( TC_ms_reg_enq() );
