diff --git a/library/BSSMAP_Templates.ttcn b/library/BSSMAP_Templates.ttcn
index 9015680..41755db 100644
--- a/library/BSSMAP_Templates.ttcn
+++ b/library/BSSMAP_Templates.ttcn
@@ -1041,6 +1041,56 @@
 template BSSMAP_FIELD_CellIdentificationList ts_BSSMAP_CIL_noCell := {
 	cIl_noCell := ''O
 }
+template (value) BSSMAP_FIELD_CellIdentificationList ts_BSSMAP_CIL_BSS := {
+	cIl_allInBSS := ''O
+}
+template BSSMAP_FIELD_CellIdentificationList tr_BSSMAP_CIL_BSS := {
+	cIl_allInBSS := ''O
+}
+
+template (value) BSSMAP_FIELD_CellIdentificationList
+		ts_BSSMAP_CIL_CGI(template (value) BSSMAP_FIELD_CellIdentificationList_CGI cgil) := {
+	cIl_CGI := cgil
+}
+template BSSMAP_FIELD_CellIdentificationList
+		tr_BSSMAP_CIL_CGI(template BSSMAP_FIELD_CellIdentificationList_CGI cgil) := {
+	cIl_CGI := cgil
+}
+
+template (value) BSSMAP_FIELD_CellIdentificationList
+		ts_BSSMAP_CIL_LAC_CI(template (value) BSSMAP_FIELD_CellIdentificationList_LAC_CI lac_cil) := {
+	cIl_LAC_CI := lac_cil
+}
+template BSSMAP_FIELD_CellIdentificationList
+		tr_BSSMAP_CIL_LAC_CI(template BSSMAP_FIELD_CellIdentificationList_LAC_CI lac_cil) := {
+	cIl_LAC_CI := lac_cil
+}
+
+template (value) BSSMAP_FIELD_CellIdentificationList
+		ts_BSSMAP_CIL_CI(template (value) RecordOfOCT2 cil) := {
+	cIl_CI := cil
+}
+template BSSMAP_FIELD_CellIdentificationList tr_BSSMAP_CIL_CI(template RecordOfOCT2 cil) := {
+	cIl_CI := cil
+}
+
+template (value) BSSMAP_FIELD_CellIdentificationList
+		ts_BSSMAP_CIL_LAI(template (value) BSSMAP_FIELD_CellIdentificationList_LAI lail) := {
+	cIl_LAI := lail
+}
+template BSSMAP_FIELD_CellIdentificationList
+		tr_BSSMAP_CIL_LAI(template BSSMAP_FIELD_CellIdentificationList_LAI lail) := {
+	cIl_LAI := lail
+}
+
+template (value) BSSMAP_FIELD_CellIdentificationList
+		ts_BSSMAP_CIL_LAC(template (value) RecordOfOCT2 lacl) := {
+	cIl_LAC := lacl
+}
+template BSSMAP_FIELD_CellIdentificationList tr_BSSMAP_CIL_LAC(template RecordOfOCT2 lacl) := {
+	cIl_LAC := lacl
+}
+
 
 private function f_enc_mcc_mnc(GsmMcc mcc, GsmMnc mnc) return OCT3 {
 	if (lengthof(mnc) == 2) {
@@ -1050,33 +1100,33 @@
 	}
 }
 
-template BSSMAP_FIELD_CellIdentification_CGI ts_BSSMAP_CI_CGI(GsmMcc mcc, GsmMnc mnc, GsmLac lac, GsmCellId ci) := {
+template (value) BSSMAP_FIELD_CellIdentification_CGI ts_BSSMAP_CI_CGI(GsmMcc mcc, GsmMnc mnc, GsmLac lac, GsmCellId ci) := {
 	mcc_mnc := f_enc_mcc_mnc(mcc, mnc),
 	lac := int2oct(lac, 2),
 	ci := int2oct(ci, 2)
 }
 
-template BSSMAP_FIELD_CellIdentification_LAC_CI ts_BSSMAP_CI_LAC_CI(GsmLac lac, GsmCellId ci) := {
+template (value) BSSMAP_FIELD_CellIdentification_LAC_CI ts_BSSMAP_CI_LAC_CI(GsmLac lac, GsmCellId ci) := {
 	lac := int2oct(lac, 2),
 	ci := int2oct(ci, 2)
 }
 
-template BSSMAP_FIELD_CellIdentification_LAI ts_BSSMAP_CI_LAI(GsmMcc mcc, GsmMnc mnc, GsmLac lac) := {
+template (value) BSSMAP_FIELD_CellIdentification_LAI ts_BSSMAP_CI_LAI(GsmMcc mcc, GsmMnc mnc, GsmLac lac) := {
 	mcc_mnc := f_enc_mcc_mnc(mcc, mnc),
 	lac := int2oct(lac, 2)
 }
 
-template OCT2 ts_BSSMAP_CI_CI(GsmCellId ci) := int2oct(ci, 2);
-template OCT2 ts_BSSMAP_CI_LAC(GsmLac lac) := int2oct(lac, 2);
+template (value) OCT2 ts_BSSMAP_CI_LAC(GsmLac lac) := int2oct(lac, 2);
+template (value) OCT2 ts_BSSMAP_CI_CI(GsmCellId ci) := int2oct(ci, 2);
 
-template BSSMAP_FIELD_CellIdentification_PLMN_LAC_RNC
+template (value) BSSMAP_FIELD_CellIdentification_PLMN_LAC_RNC
 ts_BSSMAP_CI_PLMN_LAC_RNC(GsmMcc mcc, GsmMnc mnc, GsmLac lac, uint16_t rnc_id) := {
 	mcc_mnc := f_enc_mcc_mnc(mcc, mnc),
 	lac := int2oct(lac, 2),
 	rncId := int2oct(rnc_id, 2)
 }
 
-template BSSMAP_FIELD_CellIdentification_LAC_RNC ts_BSSMAP_CI_LAC_RNC(GsmLac lac, uint16_t rnc_id) := {
+template (value) BSSMAP_FIELD_CellIdentification_LAC_RNC ts_BSSMAP_CI_LAC_RNC(GsmLac lac, uint16_t rnc_id) := {
 	lac := int2oct(lac, 2),
 	rncId := int2oct(rnc_id, 2)
 }
