diff --git a/tests/gsm0808/gsm0808_test.c b/tests/gsm0808/gsm0808_test.c
index f0f3165..46169ea 100644
--- a/tests/gsm0808/gsm0808_test.c
+++ b/tests/gsm0808/gsm0808_test.c
@@ -415,6 +415,83 @@
 	msgb_free(msg);
 }
 
+static void test_create_ass2()
+{
+	static const uint8_t res[] = {
+		BSSAP_MSG_BSS_MANAGEMENT,
+		0x45,
+		BSS_MAP_MSG_ASSIGMENT_RQST,
+		GSM0808_IE_CHANNEL_TYPE,
+		0x04, 0x01, 0x0b, 0x91, 0x15, 0x01, 0x00, 0x04,
+		GSM0808_IE_AOIP_TRASP_ADDR,
+		0x06,
+		0xac, 0x0c, 0x65, 0x0d, /* IPv4 */
+		0x02, 0x9a,
+		GSM0808_IE_SPEECH_CODEC_LIST,
+		0x07,
+		GSM0808_SCT_FR3 | 0x50,
+		0xef, 0xcd,
+		GSM0808_SCT_FR2 | 0xa0,
+		0x9f,
+		GSM0808_SCT_CSD | 0x90,
+		0xc0,
+		GSM0808_IE_CALL_ID,
+		0xde, 0xad, 0xfa, 0xce, /* CallID */
+		0x83, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, /* Kc */
+		GSM0808_IE_GLOBAL_CALL_REF, 0x0d, /* GCR, length */
+		0x03, 0x44, 0x44, 0x44, /* GCR, Net ID */
+		0x02, 0xfe, 0xed, /* GCR, Node ID */
+		0x05, 0x41, 0x41, 0x41, 0x41, 0x41, /* GCR, Call ref. ID */
+		GSM0808_IE_LCLS_CONFIG, GSM0808_LCLS_CFG_BOTH_WAY,
+		GSM0808_IE_LCLS_CONN_STATUS_CTRL, GSM0808_LCLS_CSC_CONNECT,
+		GSM0808_IE_LCLS_CORR_NOT_NEEDED,
+	};
+	struct msgb *msg;
+	struct gsm0808_channel_type ct;
+	uint16_t cic = 4;
+	struct sockaddr_storage ss;
+	struct sockaddr_in sin;
+	struct gsm0808_speech_codec_list sc_list;
+	uint32_t call_id = 0xDEADFACE;
+	struct osmo_gcr_parsed gcr = { .net_len = 3, .node = 0xFEED };
+	uint8_t Kc[16];
+	struct osmo_lcls lcls = {
+		.config = GSM0808_LCLS_CFG_BOTH_WAY,
+		.control = GSM0808_LCLS_CSC_CONNECT,
+		.gcr = &gcr,
+		.corr_needed = false
+	};
+
+	memset(gcr.cr, 'A', 5);
+	memset(gcr.net, 'D', gcr.net_len);
+	memset(Kc, 'E', 16);
+
+	memset(&ct, 0, sizeof(ct));
+	ct.ch_indctr = GSM0808_CHAN_SPEECH;
+	ct.ch_rate_type = GSM0808_SPEECH_HALF_PREF;
+	ct.perm_spch[0] = GSM0808_PERM_FR2;
+	ct.perm_spch[1] = GSM0808_PERM_HR2;
+	ct.perm_spch_len = 2;
+
+	memset(&sin, 0, sizeof(sin));
+	sin.sin_family = AF_INET;
+	sin.sin_port = htons(666);
+	inet_aton("172.12.101.13", &sin.sin_addr); /* IPv4 */
+
+	memset(&ss, 0, sizeof(ss));
+	memcpy(&ss, &sin, sizeof(sin));
+
+	setup_codec_list(&sc_list);
+
+	printf("Testing creating Assignment Request with Kc and LCLS\n");
+
+	msg = gsm0808_create_ass2(&ct, &cic, &ss, &sc_list, &call_id, Kc, &lcls);
+	if (!msgb_eq_l3_data_print(msg, res, ARRAY_SIZE(res)))
+		abort();
+
+	msgb_free(msg);
+}
+
 static void test_create_ass_compl()
 {
 	static const uint8_t res1[] = {
@@ -1880,6 +1957,7 @@
 	test_create_cm_u();
 	test_create_sapi_reject();
 	test_create_ass();
+	test_create_ass2();
 	test_create_ass_compl();
 	test_create_ass_compl_aoip();
 	test_create_ass_fail();
