diff --git a/bsc/BSC_Tests_LCLS.ttcn b/bsc/BSC_Tests_LCLS.ttcn
index da9fe94..dfbd946 100644
--- a/bsc/BSC_Tests_LCLS.ttcn
+++ b/bsc/BSC_Tests_LCLS.ttcn
@@ -303,6 +303,42 @@
 	 f_tc_lcls_gcr_bway_connect(true)
 }
 
+/* Unless explicitly enabled, osmo-bsc will avoid LCLSs when the codecs or rates
+ * of both legs are different */
+testcase TC_lcls_gcr_bway_codec_mismatch() runs on lcls_test_CT {
+	var TestHdlrParams pars_a := valueof(t_def_TestHdlrPars);
+	var TestHdlrParams pars_b;
+	var MSC_ConnHdlr vc_conn;
+	var MgcpCommand mgcp_cmd;
+
+	f_lcls_init();
+
+	/* First call leg uses full rate */
+	pars_a.ass_codec_list := valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR}));
+	pars_a.lcls.gcr := valueof(ts_GCR('010203'O, '0405'O, '060708090a'O));
+	pars_a.lcls.cfg := LCLS_CFG_both_way;
+	pars_a.lcls.csc := LCLS_CSC_connect;
+
+	/* The second call leg uses half-rate */
+	pars_b := pars_a;
+	pars_a.ass_codec_list := valueof(ts_BSSMAP_IE_CodecList({ts_CodecHR}));
+
+	/* first call is not possible to be LS (no second leg yet) */
+	pars_a.lcls.exp_sts := LCLS_STS_not_possible_ls;
+
+	/* second call is also not possible to be LS (codec/rate does not match) */
+	pars_b.lcls.exp_sts := LCLS_STS_not_yet_ls;
+	f_lcls_test_init(pars_a, pars_b);
+
+	interleave {
+	[] CONN_A.receive(LclsCompSync:LCLS_COMP_SYNC_ASS_COMPL);
+	[] CONN_B.receive(LclsCompSync:LCLS_COMP_SYNC_ASS_COMPL);
+	[] CONN_A.receive(tr_BSSMAP_LclsNotificationSts(LCLS_STS_not_yet_ls));
+	}
+
+	f_lcls_test_fini();
+}
+
 /* Send an ASSIGNMENT REQ with LCLS CFG+CSC enabling LCLS but GCR doesn't match! */
 testcase TC_lcls_gcr_nomatch_bway_connect() runs on lcls_test_CT {
 	var TestHdlrParams pars_a := valueof(t_def_TestHdlrPars);
@@ -600,6 +636,7 @@
 	execute( TC_lcls_gcr_only() );
 	execute( TC_lcls_gcr_bway_connect() );
 	execute( TC_lcls_gcr_bway_connect_hr() );
+	execute( TC_lcls_gcr_bway_codec_mismatch() );
 	execute( TC_lcls_gcr_nomatch_bway_connect() );
 	execute( TC_lcls_gcr_bway_dont_connect() );
 	execute( TC_lcls_gcr_unsuppported_cfg() );
