diff --git a/library/L3_Templates.ttcn b/library/L3_Templates.ttcn
index d652873..ca81b72 100644
--- a/library/L3_Templates.ttcn
+++ b/library/L3_Templates.ttcn
@@ -56,6 +56,18 @@
 	return l3;
 }
 
+private function f_enc_IMEI_L3(hexstring digits) return IMEI_L3 {
+	var IMEI_L3 l3;
+	var integer len := lengthof(digits);
+	if (len rem 2 == 1) {	/* modulo remainder */
+		l3.oddevenIndicator := '1'B;
+	} else {
+		l3.oddevenIndicator := '0'B;
+	}
+	l3.digits := digits;
+	return l3;
+}
+
 /* send template fro Mobile Identity (IMSI) */
 template (value) MobileIdentityLV ts_MI_IMSI_LV(hexstring imsi_digits) := {
 	lengthIndicator := 0, /* overwritten */
@@ -67,6 +79,18 @@
 	}
 }
 
+/* send template fro Mobile Identity (IMEI) */
+template (value) MobileIdentityLV ts_MI_IMEI_LV(hexstring imei_digits) := {
+	lengthIndicator := 0, /* overwritten */
+	mobileIdentityV := {
+		typeOfIdentity := '000'B, /* overwritten */
+		oddEvenInd_identity := {
+			imei := f_enc_IMEI_L3(imei_digits)
+		}
+	}
+}
+
+
 /* Send template for Classmark 2 */
 template (value) MobileStationClassmark2_LV ts_CM2 := {
 	lengthIndicator := 0,
@@ -300,6 +324,43 @@
 	}
 }
 
+template PDU_ML3_NW_MS tr_ML3_MT_MM_ID_Req(template BIT3 id_type := ?) := {
+	discriminator := '0101'B,
+	tiOrSkip := {
+		skipIndicator := '0000'B
+	},
+	msgs := {
+		mm := {
+			identityRequest := {
+				messageType := '011000'B,
+				nsd := '00'B,
+				identityType := id_type,
+				spare1_5 := ?
+			}
+		}
+	}
+}
+
+template PDU_ML3_MS_NW ts_ML3_MO_MM_ID_Rsp(MobileIdentityLV mi) modifies ts_ML3_MO := {
+	msgs := {
+		mm := {
+			identityResponse := {
+				messageType := '011001'B,
+				nsd := '00'B,
+				mobileIdentityLV := mi,
+				p_TMSI_TypeTV := omit,
+				routingAreaIdentification2TLV := omit,
+				p_TMSISignature2TLV := omit
+			}
+		}
+	}
+}
+template PDU_ML3_MS_NW ts_ML3_MO_MM_ID_Rsp_IMSI(hexstring imsi) :=
+					ts_ML3_MO_MM_ID_Rsp(valueof(ts_MI_IMSI_LV(imsi)));
+template PDU_ML3_MS_NW ts_ML3_MO_MM_ID_Rsp_IMEI(hexstring imei) :=
+					ts_ML3_MO_MM_ID_Rsp(valueof(ts_MI_IMEI_LV(imei)));
+
+
 template PDU_ML3_MS_NW ts_ML3_MO_CC(integer tid) := {
 	discriminator := '0011'B,
 	tiOrSkip := {
