diff --git a/library/CBSP_Templates.ttcn b/library/CBSP_Templates.ttcn
index 5ee1f33..5da2958 100644
--- a/library/CBSP_Templates.ttcn
+++ b/library/CBSP_Templates.ttcn
@@ -54,7 +54,7 @@
 	if (istemplatekind(val, "omit")) {
 		ie := omit;
 	} else if (istemplatekind(val, "*")) {
-		ie := tr_CBSP_IE({channel_ind := ?}) ifpresent;
+		ie := tr_CBSP_IE({channel_ind := ?}); //ifpresent;
 	} else {
 		ie := tr_CBSP_IE({channel_ind := val});
 	}
@@ -542,14 +542,20 @@
 			ts_OldSerNo(old_ser_nr),
 			ts_CbspCellList(cell_list),
 			ts_CbspChannelInd(channel_ind)});
-template CBSP_PDU tr_CBSP_KILL(template uint16_t msg_id := ?, template uint16_t old_ser_nr := ?,
-				template BSSMAP_FIELD_CellIdentificationList cell_list := ?,
-				template uint8_t channel_ind := ?) :=
-	tr_CBSP(CBSP_MSGT_KILL, {
-			tr_CbspMsgId(msg_id),
-			tr_OldSerNo(old_ser_nr),
-			tr_CbspCellList(cell_list),
-			tr_CbspChannelInd(channel_ind) });
+function tr_CBSP_KILL(template uint16_t msg_id := ?, template uint16_t old_ser_nr := ?,
+			template BSSMAP_FIELD_CellIdentificationList cell_list := ?,
+			template uint8_t channel_ind := ?)
+return template (present) CBSP_PDU {
+	var template CBSP_IEs ies := {
+		tr_CbspMsgId(msg_id),
+		tr_OldSerNo(old_ser_nr),
+		tr_CbspCellList(cell_list)
+	};
+	if (not istemplatekind(channel_ind, "omit")) {
+		ies[lengthof(ies)] := tr_CbspChannelInd(channel_ind);
+	}
+	return tr_CBSP(CBSP_MSGT_KILL, ies);
+}
 
 /* 8.1.3.5 KILL COMPLETE */
 function ts_CBSP_KILL_COMPL(template (value) uint16_t msg_id, template (value) uint16_t old_ser_nr,
diff --git a/library/CBSP_Types.ttcn b/library/CBSP_Types.ttcn
index c4c6cf2..5ab3c98 100644
--- a/library/CBSP_Types.ttcn
+++ b/library/CBSP_Types.ttcn
@@ -378,5 +378,24 @@
 external function dec_CBSP_PDU(in octetstring msg) return CBSP_PDU
 	with { extension "prototype(convert) decode(RAW)" };
 
+/* convert from warning period encoding to seconds */
+function f_cbsp_period2s(uint8_t period) return integer
+{
+	if (period == 0) {
+		return -1; /* infinite */
+	} else if (period <= 10) {
+		return period;
+	} else if (period <= 20) {
+		return 10 + (period - 10)*2;
+	} else if (period <= 38) {
+		return 30 + (period - 20)*5;
+	} else if (period <= 86) {
+		return 120 + (period - 38)*10;
+	} else if (period <= 186) {
+		return 600 + (period - 86)*30;
+	} else {
+		return 0;
+	}
+}
 
 } with { encode "RAW"; variant "FIELDORDER(msb)" }
diff --git a/library/SABP_Adapter.ttcn b/library/SABP_Adapter.ttcn
index e94e91c..046f597 100644
--- a/library/SABP_Adapter.ttcn
+++ b/library/SABP_Adapter.ttcn
@@ -20,7 +20,7 @@
 import from SABP_CodecPort_CtrlFunct all;
 import from IPL4asp_Types all;
 import from IPL4asp_PortType all;
-//import from Socket_API_Definitions all;
+import from Socket_API_Definitions all;
 
 const integer SABP_HDR_LEN := 3;
 
@@ -72,7 +72,7 @@
  * If the callback function detects that the it will be impossible to determine the length of the message,
  * even receiving more octets, should return "-2". In this case the connection will be closed and the
  * length calculation error will be reported. */
-private function f_APER_getMsgLen(in octetstring stream, inout ro_integer args) return integer {
+private function f_APER_getMsgLen(in octetstring stream, inout Socket_API_Definitions.ro_integer args) return integer {
 	var integer stream_len := lengthof(stream);
 	var integer hdr_len := args[0];
 	var octetstring stream_nohdr;
