diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn
index cda0687..4cbc256 100644
--- a/bsc/BSC_Tests.ttcn
+++ b/bsc/BSC_Tests.ttcn
@@ -3638,6 +3638,21 @@
 		});
 }
 
+private function f_vty_amr_start_mode_set(boolean fr, charstring startmode) runs on test_CT {
+	var charstring tch;
+	if (fr) {
+		tch := "tch-f";
+	} else {
+		tch := "tch-h";
+	}
+	f_vty_cfg_bts(BSCVTY, 0, { "amr " & tch & " start-mode " & startmode });
+}
+
+/* Set the AMR start-mode for this TCH back to the default configuration. */
+private function f_vty_amr_start_mode_restore(boolean fr) runs on test_CT {
+	f_vty_amr_start_mode_set(fr, "auto");
+}
+
 testcase TC_assignment_codec_amr_f() runs on test_CT {
 	var TestHdlrParams pars := f_gen_test_hdlr_pars();
 	var MSC_ConnHdlr vc_conn;
@@ -3659,10 +3674,13 @@
 
 	f_init(1, true);
 	f_sleep(1.0);
+	f_vty_amr_start_mode_set(true, "1");
 
 	vc_conn := f_start_handler(refers(f_TC_assignment_codec), pars);
 	vc_conn.done;
 	f_shutdown_helper();
+
+	f_vty_amr_start_mode_restore(true);
 }
 
 testcase TC_assignment_codec_amr_h() runs on test_CT {
@@ -3684,10 +3702,13 @@
 
 	f_init(1, true);
 	f_sleep(1.0);
+	f_vty_amr_start_mode_set(false, "1");
 
 	vc_conn := f_start_handler(refers(f_TC_assignment_codec), pars);
 	vc_conn.done;
 	f_shutdown_helper();
+
+	f_vty_amr_start_mode_restore(false);
 }
 
 function f_TC_assignment_codec_amr(boolean fr, octetstring mrconf, bitstring s8_s0, bitstring exp_s8_s0)
@@ -3716,11 +3737,13 @@
 
 	f_init(1, true);
 	f_allow_amr_rate_4_75k_5_90k_7_40k_12_20k();
+	f_vty_amr_start_mode_set(fr, "1");
 	f_sleep(1.0);
 
 	vc_conn := f_start_handler(refers(f_TC_assignment_codec), pars);
 	vc_conn.done;
 	f_allow_amr_rate_5_90k();
+	f_vty_amr_start_mode_restore(fr);
 }
 
 function f_TC_assignment_codec_amr_fail(boolean fr, bitstring s8_s0)
@@ -3739,11 +3762,13 @@
 
 	f_init(1, true);
 	f_allow_amr_rate_4_75k_5_90k_7_40k_12_20k();
+	f_vty_amr_start_mode_set(fr, "1");
 	f_sleep(1.0);
 
 	vc_conn := f_start_handler(refers(f_TC_assignment_codec_fail), pars);
 	vc_conn.done;
 	f_allow_amr_rate_5_90k();
+	f_vty_amr_start_mode_restore(fr);
 }
 
 
@@ -4164,10 +4189,13 @@
 
 	f_init(1, true, true);
 	f_sleep(1.0);
+	f_vty_amr_start_mode_set(false, "1");
 
 	vc_conn := f_start_handler(refers(f_TC_assignment_codec), pars);
 	vc_conn.done;
 	f_shutdown_helper();
+
+	f_vty_amr_start_mode_restore(false);
 }
 
 /* test the procedure of the MSC requesting a Classmark Update:
