diff --git a/library/L3_Templates.ttcn b/library/L3_Templates.ttcn
index 824dbf2..593c990 100644
--- a/library/L3_Templates.ttcn
+++ b/library/L3_Templates.ttcn
@@ -1295,6 +1295,214 @@
 }
 
 /***********************************************************************
+ * Supplementary Services
+ ***********************************************************************/
+
+private template (value) Facility_TLV ts_FacTLV(OCTN facility) := {
+	elementIdentifier := '1C'O,
+	lengthIndicator := lengthof(facility),
+	facilityInformation := facility
+}
+private template Facility_TLV tr_FacTLV(template OCTN facility) := {
+	elementIdentifier := '1C'O,
+	lengthIndicator := ?,
+	facilityInformation := facility
+}
+
+private template (value) Facility_LV ts_FacLV(OCTN facility) := {
+	lengthIndicator := lengthof(facility),
+	facilityInformation := facility
+}
+private template Facility_LV tr_FacLV(template OCTN facility) := {
+	lengthIndicator := ?,
+	facilityInformation := facility
+}
+
+template (value) PDU_ML3_MS_NW ts_ML3_MO_SS_REGISTER(
+	uint3_t tid, BIT1 ti_flag,
+	OCTN facility,
+	template (omit) SS_VersionIndicator ss_ver := omit
+) := {
+	discriminator := '1011'B,
+	tiOrSkip := {
+		transactionId := {
+			tio := int2bit(tid, 3),
+			tiFlag := ti_flag,
+			tIExtension := omit
+		}
+	},
+	msgs := {
+		ss := {
+			register := {
+				messageType := '111011'B,
+				nsd := '00'B,
+				facility := ts_FacTLV(facility),
+				ss_version := ss_ver
+			}
+		}
+	}
+}
+template PDU_ML3_MS_NW tr_ML3_MO_SS_REGISTER(
+	template uint3_t tid, template BIT1 ti_flag,
+	template OCTN facility,
+	template SS_VersionIndicator ss_ver := omit
+) := {
+	discriminator := '1011'B,
+	tiOrSkip := {
+		transactionId := {
+			tio := f_tid_or_wc(tid),
+			tiFlag := ti_flag,
+			tIExtension := omit
+		}
+	},
+	msgs := {
+		ss := {
+			register := {
+				messageType := '111011'B,
+				nsd := '00'B,
+				facility := tr_FacTLV(facility),
+				ss_version := ss_ver
+			}
+		}
+	}
+}
+
+template (value) PDU_ML3_NW_MS ts_ML3_MT_SS_REGISTER(
+	uint3_t tid, BIT1 ti_flag,
+	OCTN facility
+) := {
+	discriminator := '1011'B,
+	tiOrSkip := {
+		transactionId := {
+			tio := int2bit(tid, 3),
+			tiFlag := ti_flag,
+			tIExtension := omit
+		}
+	},
+	msgs := {
+		ss := {
+			register := {
+				messageType := '111011'B,
+				nsd := '00'B,
+				facility := ts_FacTLV(facility)
+			}
+		}
+	}
+}
+template PDU_ML3_NW_MS tr_ML3_MT_SS_REGISTER(
+	template uint3_t tid, template BIT1 ti_flag,
+	template OCTN facility
+) := {
+	discriminator := '1011'B,
+	tiOrSkip := {
+		transactionId := {
+			tio := f_tid_or_wc(tid),
+			tiFlag := ti_flag,
+			tIExtension := omit
+		}
+	},
+	msgs := {
+		ss := {
+			register := {
+				messageType := '111011'B,
+				nsd := '00'B,
+				facility := tr_FacTLV(facility)
+			}
+		}
+	}
+}
+
+template (value) PDU_ML3_MS_NW ts_ML3_MO_SS_FACILITY(
+	uint3_t tid, BIT1 ti_flag,
+	OCTN facility
+) := {
+	discriminator := '1011'B,
+	tiOrSkip := {
+		transactionId := {
+			tio := int2bit(tid, 3),
+			tiFlag := ti_flag,
+			tIExtension := omit
+		}
+	},
+	msgs := {
+		ss := {
+			facility := {
+				messageType := '111010'B,
+				nsd := '00'B,
+				facility := ts_FacLV(facility)
+			}
+		}
+	}
+}
+template PDU_ML3_MS_NW tr_ML3_MO_SS_FACILITY(
+	template uint3_t tid, template BIT1 ti_flag,
+	template OCTN facility
+) := {
+	discriminator := '1011'B,
+	tiOrSkip := {
+		transactionId := {
+			tio := f_tid_or_wc(tid),
+			tiFlag := ti_flag,
+			tIExtension := omit
+		}
+	},
+	msgs := {
+		ss := {
+			facility := {
+				messageType := '111010'B,
+				nsd := '00'B,
+				facility := tr_FacLV(facility)
+			}
+		}
+	}
+}
+
+template (value) PDU_ML3_NW_MS ts_ML3_MT_SS_FACILITY(
+	uint3_t tid, BIT1 ti_flag,
+	OCTN facility
+) := {
+	discriminator := '1011'B,
+	tiOrSkip := {
+		transactionId := {
+			tio := int2bit(tid, 3),
+			tiFlag := ti_flag,
+			tIExtension := omit
+		}
+	},
+	msgs := {
+		ss := {
+			facility := {
+				messageType := '111010'B,
+				nsd := '00'B,
+				facility := ts_FacLV(facility)
+			}
+		}
+	}
+}
+template PDU_ML3_NW_MS tr_ML3_MT_SS_FACILITY(
+	template uint3_t tid, template BIT1 ti_flag,
+	template OCTN facility
+) := {
+	discriminator := '1011'B,
+	tiOrSkip := {
+		transactionId := {
+			tio := f_tid_or_wc(tid),
+			tiFlag := ti_flag,
+			tIExtension := omit
+		}
+	},
+	msgs := {
+		ss := {
+			facility := {
+				messageType := '111010'B,
+				nsd := '00'B,
+				facility := tr_FacLV(facility)
+			}
+		}
+	}
+}
+
+/***********************************************************************
  * GPRS Mobility Management
  ***********************************************************************/
 
