diff --git a/src/ranap/RANAP_DataVolumeList.c b/src/ranap/RANAP_DataVolumeList.c
index 1d14cf1..c0ea960 100644
--- a/src/ranap/RANAP_DataVolumeList.c
+++ b/src/ranap/RANAP_DataVolumeList.c
@@ -11,8 +11,8 @@
 	{ APC_CONSTRAINED,	 1,  1,  1l,  2l }	/* (SIZE(1..2)) */,
 	0, 0	/* No PER value map */
 };
-static asn_TYPE_member_t asn_MBR_Member_2[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct Member, dl_UnsuccessfullyTransmittedDataVolume),
+static asn_TYPE_member_t asn_MBR_MemberH_2[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct MemberH, dl_UnsuccessfullyTransmittedDataVolume),
 		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
 		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_RANAP_UnsuccessfullyTransmittedDataVolume,
@@ -21,7 +21,7 @@
 		0,
 		"dl-UnsuccessfullyTransmittedDataVolume"
 		},
-	{ ATF_POINTER, 2, offsetof(struct Member, dataVolumeReference),
+	{ ATF_POINTER, 2, offsetof(struct MemberH, dataVolumeReference),
 		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
 		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_RANAP_DataVolumeReference,
@@ -30,7 +30,7 @@
 		0,
 		"dataVolumeReference"
 		},
-	{ ATF_POINTER, 1, offsetof(struct Member, iE_Extensions),
+	{ ATF_POINTER, 1, offsetof(struct MemberH, iE_Extensions),
 		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
 		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_RANAP_ProtocolExtensionContainer,
@@ -40,27 +40,27 @@
 		"iE-Extensions"
 		},
 };
-static const int asn_MAP_Member_oms_2[] = { 1, 2 };
-static const ber_tlv_tag_t asn_DEF_Member_tags_2[] = {
+static const int asn_MAP_MemberH_oms_2[] = { 1, 2 };
+static const ber_tlv_tag_t asn_DEF_MemberH_tags_2[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
-static const asn_TYPE_tag2member_t asn_MAP_Member_tag2el_2[] = {
+static const asn_TYPE_tag2member_t asn_MAP_MemberH_tag2el_2[] = {
     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dl-UnsuccessfullyTransmittedDataVolume */
     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dataVolumeReference */
     { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
 };
-static asn_SEQUENCE_specifics_t asn_SPC_Member_specs_2 = {
-	sizeof(struct Member),
-	offsetof(struct Member, _asn_ctx),
-	asn_MAP_Member_tag2el_2,
+static asn_SEQUENCE_specifics_t asn_SPC_MemberH_specs_2 = {
+	sizeof(struct MemberH),
+	offsetof(struct MemberH, _asn_ctx),
+	asn_MAP_MemberH_tag2el_2,
 	3,	/* Count of tags in the map */
-	asn_MAP_Member_oms_2,	/* Optional members */
+	asn_MAP_MemberH_oms_2,	/* Optional members */
 	2, 0,	/* Root/Additions */
 	2,	/* Start extensions */
 	4	/* Stop extensions */
 };
 static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_Member_2 = {
+asn_TYPE_descriptor_t asn_DEF_MemberH_2 = {
 	"SEQUENCE",
 	"SEQUENCE",
 	SEQUENCE_free,
@@ -75,23 +75,23 @@
 	SEQUENCE_decode_aper,
 	SEQUENCE_encode_aper,
 	0,	/* Use generic outmost tag fetcher */
-	asn_DEF_Member_tags_2,
-	sizeof(asn_DEF_Member_tags_2)
-		/sizeof(asn_DEF_Member_tags_2[0]), /* 1 */
-	asn_DEF_Member_tags_2,	/* Same as above */
-	sizeof(asn_DEF_Member_tags_2)
-		/sizeof(asn_DEF_Member_tags_2[0]), /* 1 */
+	asn_DEF_MemberH_tags_2,
+	sizeof(asn_DEF_MemberH_tags_2)
+		/sizeof(asn_DEF_MemberH_tags_2[0]), /* 1 */
+	asn_DEF_MemberH_tags_2,	/* Same as above */
+	sizeof(asn_DEF_MemberH_tags_2)
+		/sizeof(asn_DEF_MemberH_tags_2[0]), /* 1 */
 	0,	/* No PER visible constraints */
-	asn_MBR_Member_2,
+	asn_MBR_MemberH_2,
 	3,	/* Elements count */
-	&asn_SPC_Member_specs_2	/* Additional specs */
+	&asn_SPC_MemberH_specs_2	/* Additional specs */
 };
 
 static asn_TYPE_member_t asn_MBR_RANAP_DataVolumeList_1[] = {
 	{ ATF_POINTER, 0, 0,
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
-		&asn_DEF_Member_2,
+		&asn_DEF_MemberH_2,
 		0,	/* Defer constraints checking to the member type */
 		0,	/* No PER visible constraints */
 		0,
