diff --git a/library/SGsAP_Templates.ttcn b/library/SGsAP_Templates.ttcn
index aac045e..9526080 100644
--- a/library/SGsAP_Templates.ttcn
+++ b/library/SGsAP_Templates.ttcn
@@ -174,12 +174,12 @@
 
 
 /* 9.4.13 */
-template (value) MME_Name ts_SGsAP_IE_MmeName(template (value) charstring name) := {
+template (value) MME_Name ts_SGsAP_IE_MmeName(template (value) octetstring name) := {
 	iEI := '00001001'B,
 	lengthIndicator := lengthof(valueof(name)),
 	name := name
 };
-template MME_Name tr_SGsAP_IE_MmeName(template charstring name) := {
+template MME_Name tr_SGsAP_IE_MmeName(template octetstring name) := {
 	iEI := '00001001'B,
 	lengthIndicator := ?,
 	name := name
@@ -303,12 +303,12 @@
 
 
 /* 9.4.22 */
-template (value) VLR_Name ts_SGsAP_IE_VlrName(template (value) charstring name) := {
+template (value) VLR_Name ts_SGsAP_IE_VlrName(template (value) octetstring name) := {
 	iEI := '00000010'B,
 	lengthIndicator := lengthof(name),
 	name := name
 }
-template VLR_Name tr_SGsAP_IE_VlrName(template charstring name) := {
+template VLR_Name tr_SGsAP_IE_VlrName(template octetstring name) := {
 	iEI := '00000010'B,
 	lengthIndicator := ?,
 	name := name
@@ -397,7 +397,7 @@
 
 /* 8.6 */
 template (value) PDU_SGsAP ts_SGsAP_EPS_DETACH_IND(hexstring imsi,
-						   template (value) charstring mme_name,
+						   template (value) octetstring mme_name,
 						   template (value) IMSI_detachFromEPS_serviceType det_serv_typ) := {
 	sGsAP_EPS_DETACH_INDICATION:= {
 		messageType := '00010001'B,
@@ -407,7 +407,7 @@
 	}
 }
 template PDU_SGsAP tr_SGsAP_EPS_DETACH_IND(template hexstring imsi,
-					   template charstring mme_name,
+					   template octetstring mme_name,
 					   template IMSI_detachFromEPS_serviceType det_serv_typ) := {
 	sGsAP_EPS_DETACH_INDICATION:= {
 		messageType := '00010001'B,
@@ -433,7 +433,7 @@
 
 /* 8.8 */
 template (value) PDU_SGsAP ts_SGsAP_IMSI_DETACH_IND(hexstring imsi,
-						    template (value) charstring mme_name,
+						    template (value) octetstring mme_name,
 						    template (value) IMSI_detachFromNonEPS_serviceType det_serv_typ) := {
 	sGsAP_IMSI_DETACH_INDICATION := {
 		messageType := '00010011'B,
@@ -443,7 +443,7 @@
 	}
 }
 template PDU_SGsAP tr_SGsAP_IMSI_DETACH_IND(template hexstring imsi,
-					    template charstring mme_name := ?,
+					    template octetstring mme_name := ?,
 					    template IMSI_detachFromNonEPS_serviceType det_serv_typ := ?) := {
 	sGsAP_IMSI_DETACH_INDICATION := {
 		messageType := '00010011'B,
@@ -498,7 +498,7 @@
 
 /* 8.11 */
 template (value) PDU_SGsAP ts_SGsAP_LU_REQ(hexstring imsi,
-					   template (value) charstring mme_name,
+					   template (value) octetstring mme_name,
 					   template (value) EPS_location_update_type eps_lu_type,
 					   template (value) LocationAreaIdValue new_lai) := {
 	sGsAP_LOCATION_UPDATE_REQUEST := {
@@ -517,7 +517,7 @@
 	}
 }
 template PDU_SGsAP tr_SGsAP_LU_REQ(template hexstring imsi,
-				   template charstring mme_name := ?,
+				   template octetstring mme_name := ?,
 				   template EPS_location_update_type eps_lu_type := ?,
 				   template LocationAreaIdValue new_lai := ?) := {
 	sGsAP_LOCATION_UPDATE_REQUEST := {
@@ -574,7 +574,7 @@
 
 /* 8.14 */
 template (value) PDU_SGsAP ts_SGsAP_PAGING_REQ(hexstring imsi,
-						template (value) charstring vlr_name,
+						template (value) octetstring vlr_name,
 						template (value) Service_Indicator serv_ind,
 						template (omit) OCT4 tmsi) :=
 {
@@ -596,7 +596,7 @@
 	}
 }
 template PDU_SGsAP tr_SGsAP_PAGING_REQ(template hexstring imsi,
-					template charstring vlr_name,
+					template octetstring vlr_name,
 					template Service_Indicator serv_ind,
 					template OCT4 tmsi) :=
 {
@@ -619,21 +619,21 @@
 }
 
 /* 8.15 */
-template (value) PDU_SGsAP ts_SGsAP_RESET_ACK_MME(template (value) charstring mme_name) := {
+template (value) PDU_SGsAP ts_SGsAP_RESET_ACK_MME(template (value) octetstring mme_name) := {
 	sGsAP_RESET_ACK := {
 		messageType := '00010110'B,
 		mME_Name := ts_SGsAP_IE_MmeName(mme_name),
 		vLR_Name := omit
 	}
 }
-template (value) PDU_SGsAP ts_SGsAP_RESET_ACK_VLR(template (value) charstring vlr_name) := {
+template (value) PDU_SGsAP ts_SGsAP_RESET_ACK_VLR(template (value) octetstring vlr_name) := {
 	sGsAP_RESET_ACK := {
 		messageType := '00010110'B,
 		mME_Name := omit,
 		vLR_Name := ts_SGsAP_IE_VlrName(vlr_name)
 	}
 }
-template PDU_SGsAP tr_SGsAP_RESET_ACK(template charstring mme_name, template charstring vlr_name) := {
+template PDU_SGsAP tr_SGsAP_RESET_ACK(template octetstring mme_name, template octetstring vlr_name) := {
 	sGsAP_RESET_ACK := {
 		messageType := '00010110'B,
 		mME_Name := tr_SGsAP_IE_MmeName(mme_name),
@@ -642,21 +642,21 @@
 }
 
 /* 8.16 */
-template (value) PDU_SGsAP ts_SGsAP_RESET_IND_MME(template (value) charstring mme_name) := {
+template (value) PDU_SGsAP ts_SGsAP_RESET_IND_MME(template (value) octetstring mme_name) := {
 	sGsAP_RESET_INDICATION := {
 		messageType := '00010101'B,
 		mME_Name := ts_SGsAP_IE_MmeName(mme_name),
 		vLR_Name := omit
 	}
 }
-template (value) PDU_SGsAP ts_SGsAP_RESET_IND_VLR(template (value) charstring vlr_name) := {
+template (value) PDU_SGsAP ts_SGsAP_RESET_IND_VLR(template (value) octetstring vlr_name) := {
 	sGsAP_RESET_INDICATION := {
 		messageType := '00010101'B,
 		mME_Name := omit,
 		vLR_Name := ts_SGsAP_IE_VlrName(vlr_name)
 	}
 }
-template PDU_SGsAP tr_SGsAP_RESET_IND(template charstring mme_name, template charstring vlr_name) := {
+template PDU_SGsAP tr_SGsAP_RESET_IND(template octetstring mme_name, template octetstring vlr_name) := {
 	sGsAP_RESET_INDICATION := {
 		messageType := '00010101'B,
 		mME_Name := tr_SGsAP_IE_MmeName(mme_name),
