diff --git a/src/ranap/RANAP_RABParametersList.c b/src/ranap/RANAP_RABParametersList.c
index d9193c3..5e9288f 100644
--- a/src/ranap/RANAP_RABParametersList.c
+++ b/src/ranap/RANAP_RABParametersList.c
@@ -11,8 +11,8 @@
 	{ APC_CONSTRAINED,	 8,  8,  1l,  256l }	/* (SIZE(1..256)) */,
 	0, 0	/* No PER value map */
 };
-static asn_TYPE_member_t asn_MBR_MemberA_2[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct MemberA, rab_Id),
+static asn_TYPE_member_t asn_MBR_MemberB_2[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct MemberB, rab_Id),
 		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
 		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_RANAP_RAB_ID,
@@ -21,7 +21,7 @@
 		0,
 		"rab-Id"
 		},
-	{ ATF_NOFLAGS, 0, offsetof(struct MemberA, cn_domain),
+	{ ATF_NOFLAGS, 0, offsetof(struct MemberB, cn_domain),
 		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
 		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_RANAP_CN_DomainIndicator,
@@ -30,7 +30,7 @@
 		0,
 		"cn-domain"
 		},
-	{ ATF_POINTER, 3, offsetof(struct MemberA, rabDataVolumeReport),
+	{ ATF_POINTER, 3, offsetof(struct MemberB, rabDataVolumeReport),
 		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
 		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_RANAP_RABDataVolumeReport,
@@ -39,7 +39,7 @@
 		0,
 		"rabDataVolumeReport"
 		},
-	{ ATF_POINTER, 2, offsetof(struct MemberA, upInformation),
+	{ ATF_POINTER, 2, offsetof(struct MemberB, upInformation),
 		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
 		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_RANAP_UPInformation,
@@ -48,7 +48,7 @@
 		0,
 		"upInformation"
 		},
-	{ ATF_POINTER, 1, offsetof(struct MemberA, iE_Extensions),
+	{ ATF_POINTER, 1, offsetof(struct MemberB, iE_Extensions),
 		(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
 		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_RANAP_IE_Extensions,
@@ -58,29 +58,29 @@
 		"iE-Extensions"
 		},
 };
-static const int asn_MAP_MemberA_oms_2[] = { 2, 3, 4 };
-static const ber_tlv_tag_t asn_DEF_MemberA_tags_2[] = {
+static const int asn_MAP_MemberB_oms_2[] = { 2, 3, 4 };
+static const ber_tlv_tag_t asn_DEF_MemberB_tags_2[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
-static const asn_TYPE_tag2member_t asn_MAP_MemberA_tag2el_2[] = {
+static const asn_TYPE_tag2member_t asn_MAP_MemberB_tag2el_2[] = {
     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rab-Id */
     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cn-domain */
     { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* rabDataVolumeReport */
     { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* upInformation */
     { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */
 };
-static asn_SEQUENCE_specifics_t asn_SPC_MemberA_specs_2 = {
-	sizeof(struct MemberA),
-	offsetof(struct MemberA, _asn_ctx),
-	asn_MAP_MemberA_tag2el_2,
+static asn_SEQUENCE_specifics_t asn_SPC_MemberB_specs_2 = {
+	sizeof(struct MemberB),
+	offsetof(struct MemberB, _asn_ctx),
+	asn_MAP_MemberB_tag2el_2,
 	5,	/* Count of tags in the map */
-	asn_MAP_MemberA_oms_2,	/* Optional members */
+	asn_MAP_MemberB_oms_2,	/* Optional members */
 	3, 0,	/* Root/Additions */
 	4,	/* Start extensions */
 	6	/* Stop extensions */
 };
 static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_MemberA_2 = {
+asn_TYPE_descriptor_t asn_DEF_MemberB_2 = {
 	"SEQUENCE",
 	"SEQUENCE",
 	SEQUENCE_free,
@@ -95,23 +95,23 @@
 	SEQUENCE_decode_aper,
 	SEQUENCE_encode_aper,
 	0,	/* Use generic outmost tag fetcher */
-	asn_DEF_MemberA_tags_2,
-	sizeof(asn_DEF_MemberA_tags_2)
-		/sizeof(asn_DEF_MemberA_tags_2[0]), /* 1 */
-	asn_DEF_MemberA_tags_2,	/* Same as above */
-	sizeof(asn_DEF_MemberA_tags_2)
-		/sizeof(asn_DEF_MemberA_tags_2[0]), /* 1 */
+	asn_DEF_MemberB_tags_2,
+	sizeof(asn_DEF_MemberB_tags_2)
+		/sizeof(asn_DEF_MemberB_tags_2[0]), /* 1 */
+	asn_DEF_MemberB_tags_2,	/* Same as above */
+	sizeof(asn_DEF_MemberB_tags_2)
+		/sizeof(asn_DEF_MemberB_tags_2[0]), /* 1 */
 	0,	/* No PER visible constraints */
-	asn_MBR_MemberA_2,
+	asn_MBR_MemberB_2,
 	5,	/* Elements count */
-	&asn_SPC_MemberA_specs_2	/* Additional specs */
+	&asn_SPC_MemberB_specs_2	/* Additional specs */
 };
 
 static asn_TYPE_member_t asn_MBR_RANAP_RABParametersList_1[] = {
 	{ ATF_POINTER, 0, 0,
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
-		&asn_DEF_MemberA_2,
+		&asn_DEF_MemberB_2,
 		0,	/* Defer constraints checking to the member type */
 		0,	/* No PER visible constraints */
 		0,
