diff --git a/hnodeb/HNB_Tests.ttcn b/hnodeb/HNB_Tests.ttcn
index 1a02a6f..6d1ddc5 100644
--- a/hnodeb/HNB_Tests.ttcn
+++ b/hnodeb/HNB_Tests.ttcn
@@ -300,6 +300,17 @@
 	timer Tu;
 	var uint32_t audio_conn_id;
 	var IuUP_FQC fqc := IuUP_FQC_GOOD;
+	var template (omit) HNBLLIF_AUDIO_RFCIs rfcis_tpl := omit;
+
+	if (g_pars.hnbllif_sapi_audio_version >= 1) {
+		var HNBLLIF_AUDIO_RFCIs rfcis;
+		/* generate some unordered RFCI list of 3 elements (the default): */
+		rfcis[0] := 1; rfcis[1] := 2; rfcis[2] := 0;
+		for (var integer i := 3; i < HNBLLIF_MAX_RFCIS; i := i + 1) {
+			rfcis[i] := 0;
+		}
+		rfcis_tpl := rfcis;
+	}
 
 	rtp_payload := f_rnd_octstring(6);
 	f_HNBGW_rtpem_activate(rtp_payload);
@@ -323,7 +334,8 @@
 
 	/* Now LLSK provides the remote TransportLayerAddress from RabAssReq and asks SUT to provide a local address: */
 	LLSK.send(f_llsk_tx(ts_HNBLLIF_AUDIO_CONN_ESTABLISH_REQ(context_id, g_pars.hnbgw_rtp_port, HNBLL_IF_ADDR_TYPE_IPV4,
-								f_HNBLLIF_Addr(HNBLL_IF_ADDR_TYPE_IPV4, g_pars.hnbgw_addr))));
+								f_HNBLLIF_Addr(HNBLL_IF_ADDR_TYPE_IPV4, g_pars.hnbgw_addr),
+								rfci := rfcis_tpl)));
 	LLSK.receive(f_llsk_rx(tr_HNBLLIF_AUDIO_CONN_ESTABLISH_CNF(context_id, ?, 0, ?, HNBLL_IF_ADDR_TYPE_IPV4, ?))) -> value sd;
 
 	audio_conn_id := sd.data.u.audio.u.conn_establish.u.cnf.audio_conn_id;
@@ -380,6 +392,19 @@
 	vc_conn.done;
 	f_shutdown_helper();
 }
+/* Same as TC_cs_mo_call, but using AUDIO SAPI version 0 (no rfci param
+ * in HNBLLIF_AUDIO_conn_establish_req) */
+testcase TC_cs_mo_call_audio_v0() runs on test_CT {
+	var HNBGW_ConnHdlr vc_conn;
+	var TestHdlrParams pars;
+
+	f_init();
+	pars := valueof(f_gen_test_hdlr_pars());
+	pars.hnbllif_sapi_audio_version := 0;
+	vc_conn := f_start_handler(refers(f_tc_cs_mo_call), pars);
+	vc_conn.done;
+	f_shutdown_helper();
+}
 
 private function f_tc_ps_mo_gtp_ping_pong(charstring id) runs on HNBGW_ConnHdlr {
 	const integer context_id := 30;
@@ -445,6 +470,7 @@
 	execute( TC_hnb_register_request_reject() );
 	execute( TC_mo_conn() );
 	execute( TC_paging() );
+	execute( TC_cs_mo_call_audio_v0() );
 	execute( TC_cs_mo_call() );
 	execute( TC_ps_mo_gtp_ping_pong() );
 }
