diff --git a/sysinfo/Test.ttcn b/sysinfo/Test.ttcn
index e7cdcfe..02a2279 100644
--- a/sysinfo/Test.ttcn
+++ b/sysinfo/Test.ttcn
@@ -751,8 +751,12 @@
 	testcase TC_rach_max_tx() runs on dummy_CT {
 		var uint16_t r := float2int(rnd() * 3.0);
 		const integer max_tx_map[4] := { 1, 2, 4, 7 };
+		const RachCtrlPar_MR max_tx_map2[4] := { RACH_MAX_RETRANS_1,
+							 RACH_MAX_RETRANS_2,
+							 RACH_MAX_RETRANS_4,
+							 RACH_MAX_RETRANS_7 };
 		var template SystemInformation t := t_SI_SI3;
-		t.payload.si3.rach_control.max_retrans := int2bit(r, 2);
+		t.payload.si3.rach_control.max_retrans := max_tx_map2[r];
 
 		f_init();
 		f_vty_enter_cfg_bts(BSCVTY, 0);
@@ -764,9 +768,12 @@
 	}
 
 	testcase TC_dtx_ul() runs on dummy_CT {
-		var integer i := float2int(rnd() * 2.0);
+		var integer i := float2int(rnd() * 3.0);
 		var template SystemInformation t := t_SI_SI3;
-		t.payload.si3.cell_options.dtx := int2bit(i, 2);
+		var CellOptions_DTX dtx_map[3] := { MS_MAY_USE_UL_DTX,
+						    MS_SHALL_USE_UL_DTX,
+						    MS_SHALL_NOT_USE_UL_DTX };
+		t.payload.si3.cell_options.dtx := dtx_map[i];
 
 		f_init();
 		f_vty_enter_cfg_bts(BSCVTY, 0);
@@ -826,7 +833,7 @@
 	testcase TC_radio_link_timeout() runs on dummy_CT {
 		var integer i := float2int(rnd() * 15.0);
 		var template SystemInformation t := t_SI_SI3;
-		t.payload.si3.cell_options.radio_link_timeout := int2bit(i, 4);
+		t.payload.si3.cell_options.radio_link_tout_div4 := i;
 
 		f_init();
 		f_vty_enter_cfg_bts(BSCVTY, 0);
@@ -840,7 +847,7 @@
 	testcase TC_cell_resel_hyst() runs on dummy_CT {
 		var integer i := float2int(rnd() * 7.0);
 		var template SystemInformation t := t_SI_SI3;
-		t.payload.si3.cell_sel_par.cell_resel_hyst := i;
+		t.payload.si3.cell_sel_par.cell_resel_hyst_2dB := i;
 
 		f_init();
 		f_vty_enter_cfg_bts(BSCVTY, 0);
@@ -883,9 +890,9 @@
 		var integer i := float2int(rnd());
 		var template SystemInformation t := t_SI_SI3;
 		if (i == 1) {
-			t.payload.si3.rach_control.ac := '?????0??????????'B;
+			t.payload.si3.rach_control.acc := '?????0??????????'B;
 		} else {
-			t.payload.si3.rach_control.ac := '?????1??????????'B;
+			t.payload.si3.rach_control.acc := '?????1??????????'B;
 		}
 
 		f_init();
