diff --git a/library/BSSMAP_LE_Templates.ttcn b/library/BSSMAP_LE_Templates.ttcn
index 9886679..3619a3a 100644
--- a/library/BSSMAP_LE_Templates.ttcn
+++ b/library/BSSMAP_LE_Templates.ttcn
@@ -156,9 +156,10 @@
 
 
 /* Section 9.1 */
-template (value) PDU_BSSAP_LE ts_BSMAP_LE_PerfLocReq(BSSMAP_LE_LocInfo loc_info := BSSMAP_LE_LOC_INFO_CURRENT_GEOGRAPHIC_LOC,
-						     template (value) BSSMAP_IE_CellIdentifier cell_id,
-						     template (omit) hexstring imsi)
+template (value) PDU_BSSAP_LE ts_BSSMAP_LE_PerfLocReq(BSSMAP_LE_LocInfo loc_info := BSSMAP_LE_LOC_INFO_CURRENT_GEOGRAPHIC_LOC,
+						      template (value) BSSMAP_IE_CellIdentifier cell_id,
+						      template (omit) hexstring imsi,
+						      template (omit) octetstring bsslap_apdu := omit)
 
 modifies ts_BSSAP_LE_BSSMAP := {
 	pdu := {
@@ -173,7 +174,7 @@
 				lcs_priority := omit,
 				lcs_qos := omit,
 				req_gps_ass_d := omit,
-				bsslap_apdu := omit,
+				bsslap_apdu := ts_BSSMAP_LE_APDU(BSSMAP_LE_PROT_BSSLAP, bsslap_apdu),
 				lcs_capability := omit,
 				packet_meas_rep := omit,
 				meas_cell_id_list := omit,
@@ -183,9 +184,9 @@
 		}
 	}
 }
-template (present) PDU_BSSAP_LE tr_BSMAP_LE_PerfLocReq(BSSMAP_LE_LocInfo loc_info := BSSMAP_LE_LOC_INFO_CURRENT_GEOGRAPHIC_LOC,
-						       template (present) BSSMAP_IE_CellIdentifier cell_id,
-						       template hexstring imsi)
+template (present) PDU_BSSAP_LE tr_BSSMAP_LE_PerfLocReq(BSSMAP_LE_LocInfo loc_info := BSSMAP_LE_LOC_INFO_CURRENT_GEOGRAPHIC_LOC,
+							template (present) BSSMAP_IE_CellIdentifier cell_id,
+							template hexstring imsi)
 modifies tr_BSSAP_LE_BSSMAP := {
 	pdu := {
 		bssmap := {
@@ -212,9 +213,8 @@
 
 
 /* Section 9.2 */
-template (value) PDU_BSSAP_LE ts_BSMAP_LE_PerfLocResp(BSSMAP_LE_LocInfo loc_info := BSSMAP_LE_LOC_INFO_CURRENT_GEOGRAPHIC_LOC,
-						      template (omit) octetstring geo_loc,
-						      template (omit) BSSMAP_LE_LcsCause cause)
+template (value) PDU_BSSAP_LE ts_BSSMAP_LE_PerfLocResp(template (omit) octetstring geo_loc,
+						       template (omit) BSSMAP_LE_LcsCause cause)
 
 modifies ts_BSSAP_LE_BSSMAP := {
 	pdu := {
@@ -231,9 +231,8 @@
 		}
 	}
 }
-template (present) PDU_BSSAP_LE tr_BSMAP_LE_PerfLocResp(template BSSMAP_LE_LocInfo loc_info := BSSMAP_LE_LOC_INFO_CURRENT_GEOGRAPHIC_LOC,
-							template octetstring geo_loc,
-							template BSSMAP_LE_LcsCause cause)
+template (present) PDU_BSSAP_LE tr_BSSMAP_LE_PerfLocResp(template octetstring geo_loc,
+							 template BSSMAP_LE_LcsCause cause)
 modifies tr_BSSAP_LE_BSSMAP := {
 	pdu := {
 		bssmap := {
@@ -292,7 +291,29 @@
 	}
 }
 
+template (value) PDU_BSSAP_LE ts_BSSMAP_LE_PerfLocAbort(BSSMAP_LE_LcsCause cause)
+modifies ts_BSSAP_LE_BSSMAP := {
+	pdu := {
+		bssmap := {
+			perf_loc_abort := {
+				msg_type := BSSMAP_LE_PERFORM_LOC_ABORT,
+				lcs_cause := ts_BSSMAP_LE_LcsCause(cause)
+			}
+		}
+	}
+}
 
+template (present) PDU_BSSAP_LE tr_BSSMAP_LE_PerfLocAbort(template BSSMAP_LE_LcsCause cause)
+modifies tr_BSSAP_LE_BSSMAP := {
+	pdu := {
+		bssmap := {
+			perf_loc_abort := {
+				msg_type := BSSMAP_LE_PERFORM_LOC_ABORT,
+				lcs_cause := tr_BSSMAP_LE_LcsCause(cause)
+			}
+		}
+	}
+}
 
 /* Section 9.10 */
 template (value) PDU_BSSAP_LE ts_BSSMAP_LE_Reset(myBSSMAP_Cause cause) modifies ts_BSSAP_LE_BSSMAP := {
