diff --git a/tests/50-constraint-OK.asn1.-Pgen-PER b/tests/50-constraint-OK.asn1.-Pgen-PER
index 3ac7a51..15d438d 100644
--- a/tests/50-constraint-OK.asn1.-Pgen-PER
+++ b/tests/50-constraint-OK.asn1.-Pgen-PER
@@ -47,6 +47,8 @@
 	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
 	td->oer_decoder    = asn_DEF_NativeInteger.oer_decoder;
 	td->oer_encoder    = asn_DEF_NativeInteger.oer_encoder;
+	if(!td->oer_constraints)
+		td->oer_constraints = asn_DEF_NativeInteger.oer_constraints;
 	if(!td->per_constraints)
 		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
 	td->elements       = asn_DEF_NativeInteger.elements;
@@ -129,9 +131,9 @@
 	Int1_encode_der,
 	Int1_decode_xer,
 	Int1_encode_xer,
+	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	Int1_decode_uper,
 	Int1_encode_uper,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_Int1_tags_1,
 	sizeof(asn_DEF_Int1_tags_1)
@@ -139,6 +141,7 @@
 	asn_DEF_Int1_tags_1,	/* Same as above */
 	sizeof(asn_DEF_Int1_tags_1)
 		/sizeof(asn_DEF_Int1_tags_1[0]), /* 1 */
+	0,	/* No OER visible constraints */
 	0,	/* No PER visible constraints */
 	0, 0,	/* No members */
 	0	/* No specifics */
@@ -210,6 +213,8 @@
 	td->uper_encoder   = asn_DEF_Int1.uper_encoder;
 	td->oer_decoder    = asn_DEF_Int1.oer_decoder;
 	td->oer_encoder    = asn_DEF_Int1.oer_encoder;
+	if(!td->oer_constraints)
+		td->oer_constraints = asn_DEF_Int1.oer_constraints;
 	if(!td->per_constraints)
 		td->per_constraints = asn_DEF_Int1.per_constraints;
 	td->elements       = asn_DEF_Int1.elements;
@@ -300,9 +305,9 @@
 	Int2_encode_der,
 	Int2_decode_xer,
 	Int2_encode_xer,
+	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	Int2_decode_uper,
 	Int2_encode_uper,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_Int2_tags_1,
 	sizeof(asn_DEF_Int2_tags_1)
@@ -310,6 +315,7 @@
 	asn_DEF_Int2_tags_1,	/* Same as above */
 	sizeof(asn_DEF_Int2_tags_1)
 		/sizeof(asn_DEF_Int2_tags_1[0]), /* 1 */
+	0,	/* No OER visible constraints */
 	&asn_PER_type_Int2_constr_1,
 	0, 0,	/* No members */
 	0	/* No specifics */
@@ -381,6 +387,8 @@
 	td->uper_encoder   = asn_DEF_Int2.uper_encoder;
 	td->oer_decoder    = asn_DEF_Int2.oer_decoder;
 	td->oer_encoder    = asn_DEF_Int2.oer_encoder;
+	if(!td->oer_constraints)
+		td->oer_constraints = asn_DEF_Int2.oer_constraints;
 	if(!td->per_constraints)
 		td->per_constraints = asn_DEF_Int2.per_constraints;
 	td->elements       = asn_DEF_Int2.elements;
@@ -471,9 +479,9 @@
 	Int3_encode_der,
 	Int3_decode_xer,
 	Int3_encode_xer,
+	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	Int3_decode_uper,
 	Int3_encode_uper,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_Int3_tags_1,
 	sizeof(asn_DEF_Int3_tags_1)
@@ -481,6 +489,7 @@
 	asn_DEF_Int3_tags_1,	/* Same as above */
 	sizeof(asn_DEF_Int3_tags_1)
 		/sizeof(asn_DEF_Int3_tags_1[0]), /* 1 */
+	0,	/* No OER visible constraints */
 	&asn_PER_type_Int3_constr_1,
 	0, 0,	/* No members */
 	0	/* No specifics */
@@ -552,6 +561,8 @@
 	td->uper_encoder   = asn_DEF_Int3.uper_encoder;
 	td->oer_decoder    = asn_DEF_Int3.oer_decoder;
 	td->oer_encoder    = asn_DEF_Int3.oer_encoder;
+	if(!td->oer_constraints)
+		td->oer_constraints = asn_DEF_Int3.oer_constraints;
 	if(!td->per_constraints)
 		td->per_constraints = asn_DEF_Int3.per_constraints;
 	td->elements       = asn_DEF_Int3.elements;
@@ -642,9 +653,9 @@
 	Int4_encode_der,
 	Int4_decode_xer,
 	Int4_encode_xer,
+	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	Int4_decode_uper,
 	Int4_encode_uper,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_Int4_tags_1,
 	sizeof(asn_DEF_Int4_tags_1)
@@ -652,6 +663,7 @@
 	asn_DEF_Int4_tags_1,	/* Same as above */
 	sizeof(asn_DEF_Int4_tags_1)
 		/sizeof(asn_DEF_Int4_tags_1[0]), /* 1 */
+	0,	/* No OER visible constraints */
 	&asn_PER_type_Int4_constr_1,
 	0, 0,	/* No members */
 	0	/* No specifics */
@@ -723,6 +735,8 @@
 	td->uper_encoder   = asn_DEF_Int4.uper_encoder;
 	td->oer_decoder    = asn_DEF_Int4.oer_decoder;
 	td->oer_encoder    = asn_DEF_Int4.oer_encoder;
+	if(!td->oer_constraints)
+		td->oer_constraints = asn_DEF_Int4.oer_constraints;
 	if(!td->per_constraints)
 		td->per_constraints = asn_DEF_Int4.per_constraints;
 	td->elements       = asn_DEF_Int4.elements;
@@ -813,9 +827,9 @@
 	Int5_encode_der,
 	Int5_decode_xer,
 	Int5_encode_xer,
+	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	Int5_decode_uper,
 	Int5_encode_uper,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_Int5_tags_1,
 	sizeof(asn_DEF_Int5_tags_1)
@@ -823,6 +837,7 @@
 	asn_DEF_Int5_tags_1,	/* Same as above */
 	sizeof(asn_DEF_Int5_tags_1)
 		/sizeof(asn_DEF_Int5_tags_1[0]), /* 1 */
+	0,	/* No OER visible constraints */
 	&asn_PER_type_Int5_constr_1,
 	0, 0,	/* No members */
 	0	/* No specifics */
@@ -894,6 +909,8 @@
 	td->uper_encoder   = asn_DEF_NativeInteger.uper_encoder;
 	td->oer_decoder    = asn_DEF_NativeInteger.oer_decoder;
 	td->oer_encoder    = asn_DEF_NativeInteger.oer_encoder;
+	if(!td->oer_constraints)
+		td->oer_constraints = asn_DEF_NativeInteger.oer_constraints;
 	if(!td->per_constraints)
 		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
 	td->elements       = asn_DEF_NativeInteger.elements;
@@ -984,9 +1001,9 @@
 	ExtensibleExtensions_encode_der,
 	ExtensibleExtensions_decode_xer,
 	ExtensibleExtensions_encode_xer,
+	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	ExtensibleExtensions_decode_uper,
 	ExtensibleExtensions_encode_uper,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_ExtensibleExtensions_tags_1,
 	sizeof(asn_DEF_ExtensibleExtensions_tags_1)
@@ -994,6 +1011,7 @@
 	asn_DEF_ExtensibleExtensions_tags_1,	/* Same as above */
 	sizeof(asn_DEF_ExtensibleExtensions_tags_1)
 		/sizeof(asn_DEF_ExtensibleExtensions_tags_1[0]), /* 1 */
+	0,	/* No OER visible constraints */
 	&asn_PER_type_ExtensibleExtensions_constr_1,
 	0, 0,	/* No members */
 	0	/* No specifics */
@@ -1048,6 +1066,8 @@
 	td->uper_encoder   = asn_DEF_IA5String.uper_encoder;
 	td->oer_decoder    = asn_DEF_IA5String.oer_decoder;
 	td->oer_encoder    = asn_DEF_IA5String.oer_encoder;
+	if(!td->oer_constraints)
+		td->oer_constraints = asn_DEF_IA5String.oer_constraints;
 	if(!td->per_constraints)
 		td->per_constraints = asn_DEF_IA5String.per_constraints;
 	td->elements       = asn_DEF_IA5String.elements;
@@ -1130,9 +1150,9 @@
 	Str1_encode_der,
 	Str1_decode_xer,
 	Str1_encode_xer,
+	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	Str1_decode_uper,
 	Str1_encode_uper,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_Str1_tags_1,
 	sizeof(asn_DEF_Str1_tags_1)
@@ -1140,6 +1160,7 @@
 	asn_DEF_Str1_tags_1,	/* Same as above */
 	sizeof(asn_DEF_Str1_tags_1)
 		/sizeof(asn_DEF_Str1_tags_1[0]), /* 1 */
+	0,	/* No OER visible constraints */
 	0,	/* No PER visible constraints */
 	0, 0,	/* No members */
 	0	/* No specifics */
@@ -1229,6 +1250,8 @@
 	td->uper_encoder   = asn_DEF_Str1.uper_encoder;
 	td->oer_decoder    = asn_DEF_Str1.oer_decoder;
 	td->oer_encoder    = asn_DEF_Str1.oer_encoder;
+	if(!td->oer_constraints)
+		td->oer_constraints = asn_DEF_Str1.oer_constraints;
 	if(!td->per_constraints)
 		td->per_constraints = asn_DEF_Str1.per_constraints;
 	td->elements       = asn_DEF_Str1.elements;
@@ -1319,9 +1342,9 @@
 	Str2_encode_der,
 	Str2_decode_xer,
 	Str2_encode_xer,
+	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	Str2_decode_uper,
 	Str2_encode_uper,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_Str2_tags_1,
 	sizeof(asn_DEF_Str2_tags_1)
@@ -1329,6 +1352,7 @@
 	asn_DEF_Str2_tags_1,	/* Same as above */
 	sizeof(asn_DEF_Str2_tags_1)
 		/sizeof(asn_DEF_Str2_tags_1[0]), /* 1 */
+	0,	/* No OER visible constraints */
 	&asn_PER_type_Str2_constr_1,
 	0, 0,	/* No members */
 	0	/* No specifics */
@@ -1442,6 +1466,8 @@
 	td->uper_encoder   = asn_DEF_Str2.uper_encoder;
 	td->oer_decoder    = asn_DEF_Str2.oer_decoder;
 	td->oer_encoder    = asn_DEF_Str2.oer_encoder;
+	if(!td->oer_constraints)
+		td->oer_constraints = asn_DEF_Str2.oer_constraints;
 	if(!td->per_constraints)
 		td->per_constraints = asn_DEF_Str2.per_constraints;
 	td->elements       = asn_DEF_Str2.elements;
@@ -1533,9 +1559,9 @@
 	Str3_encode_der,
 	Str3_decode_xer,
 	Str3_encode_xer,
+	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	Str3_decode_uper,
 	Str3_encode_uper,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_Str3_tags_1,
 	sizeof(asn_DEF_Str3_tags_1)
@@ -1543,6 +1569,7 @@
 	asn_DEF_Str3_tags_1,	/* Same as above */
 	sizeof(asn_DEF_Str3_tags_1)
 		/sizeof(asn_DEF_Str3_tags_1[0]), /* 1 */
+	0,	/* No OER visible constraints */
 	&asn_PER_type_Str3_constr_1,
 	0, 0,	/* No members */
 	0	/* No specifics */
@@ -1629,6 +1656,8 @@
 	td->uper_encoder   = asn_DEF_IA5String.uper_encoder;
 	td->oer_decoder    = asn_DEF_IA5String.oer_decoder;
 	td->oer_encoder    = asn_DEF_IA5String.oer_encoder;
+	if(!td->oer_constraints)
+		td->oer_constraints = asn_DEF_IA5String.oer_constraints;
 	if(!td->per_constraints)
 		td->per_constraints = asn_DEF_IA5String.per_constraints;
 	td->elements       = asn_DEF_IA5String.elements;
@@ -1719,9 +1748,9 @@
 	Str4_encode_der,
 	Str4_decode_xer,
 	Str4_encode_xer,
+	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	Str4_decode_uper,
 	Str4_encode_uper,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_Str4_tags_1,
 	sizeof(asn_DEF_Str4_tags_1)
@@ -1729,6 +1758,7 @@
 	asn_DEF_Str4_tags_1,	/* Same as above */
 	sizeof(asn_DEF_Str4_tags_1)
 		/sizeof(asn_DEF_Str4_tags_1[0]), /* 1 */
+	0,	/* No OER visible constraints */
 	&asn_PER_type_Str4_constr_1,
 	0, 0,	/* No members */
 	0	/* No specifics */
@@ -1815,6 +1845,8 @@
 	td->uper_encoder   = asn_DEF_IA5String.uper_encoder;
 	td->oer_decoder    = asn_DEF_IA5String.oer_decoder;
 	td->oer_encoder    = asn_DEF_IA5String.oer_encoder;
+	if(!td->oer_constraints)
+		td->oer_constraints = asn_DEF_IA5String.oer_constraints;
 	if(!td->per_constraints)
 		td->per_constraints = asn_DEF_IA5String.per_constraints;
 	td->elements       = asn_DEF_IA5String.elements;
@@ -1905,9 +1937,9 @@
 	PER_Visible_encode_der,
 	PER_Visible_decode_xer,
 	PER_Visible_encode_xer,
+	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	PER_Visible_decode_uper,
 	PER_Visible_encode_uper,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_PER_Visible_tags_1,
 	sizeof(asn_DEF_PER_Visible_tags_1)
@@ -1915,6 +1947,7 @@
 	asn_DEF_PER_Visible_tags_1,	/* Same as above */
 	sizeof(asn_DEF_PER_Visible_tags_1)
 		/sizeof(asn_DEF_PER_Visible_tags_1[0]), /* 1 */
+	0,	/* No OER visible constraints */
 	&asn_PER_type_PER_Visible_constr_1,
 	0, 0,	/* No members */
 	0	/* No specifics */
@@ -2001,6 +2034,8 @@
 	td->uper_encoder   = asn_DEF_PER_Visible.uper_encoder;
 	td->oer_decoder    = asn_DEF_PER_Visible.oer_decoder;
 	td->oer_encoder    = asn_DEF_PER_Visible.oer_encoder;
+	if(!td->oer_constraints)
+		td->oer_constraints = asn_DEF_PER_Visible.oer_constraints;
 	if(!td->per_constraints)
 		td->per_constraints = asn_DEF_PER_Visible.per_constraints;
 	td->elements       = asn_DEF_PER_Visible.elements;
@@ -2091,9 +2126,9 @@
 	PER_Visible_2_encode_der,
 	PER_Visible_2_decode_xer,
 	PER_Visible_2_encode_xer,
+	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	PER_Visible_2_decode_uper,
 	PER_Visible_2_encode_uper,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_PER_Visible_2_tags_1,
 	sizeof(asn_DEF_PER_Visible_2_tags_1)
@@ -2101,6 +2136,7 @@
 	asn_DEF_PER_Visible_2_tags_1,	/* Same as above */
 	sizeof(asn_DEF_PER_Visible_2_tags_1)
 		/sizeof(asn_DEF_PER_Visible_2_tags_1[0]), /* 1 */
+	0,	/* No OER visible constraints */
 	&asn_PER_type_PER_Visible_2_constr_1,
 	0, 0,	/* No members */
 	0	/* No specifics */
@@ -2187,6 +2223,8 @@
 	td->uper_encoder   = asn_DEF_PER_Visible.uper_encoder;
 	td->oer_decoder    = asn_DEF_PER_Visible.oer_decoder;
 	td->oer_encoder    = asn_DEF_PER_Visible.oer_encoder;
+	if(!td->oer_constraints)
+		td->oer_constraints = asn_DEF_PER_Visible.oer_constraints;
 	if(!td->per_constraints)
 		td->per_constraints = asn_DEF_PER_Visible.per_constraints;
 	td->elements       = asn_DEF_PER_Visible.elements;
@@ -2277,9 +2315,9 @@
 	Not_PER_Visible_1_encode_der,
 	Not_PER_Visible_1_decode_xer,
 	Not_PER_Visible_1_encode_xer,
+	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	Not_PER_Visible_1_decode_uper,
 	Not_PER_Visible_1_encode_uper,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_Not_PER_Visible_1_tags_1,
 	sizeof(asn_DEF_Not_PER_Visible_1_tags_1)
@@ -2287,6 +2325,7 @@
 	asn_DEF_Not_PER_Visible_1_tags_1,	/* Same as above */
 	sizeof(asn_DEF_Not_PER_Visible_1_tags_1)
 		/sizeof(asn_DEF_Not_PER_Visible_1_tags_1[0]), /* 1 */
+	0,	/* No OER visible constraints */
 	&asn_PER_type_Not_PER_Visible_1_constr_1,
 	0, 0,	/* No members */
 	0	/* No specifics */
@@ -2373,6 +2412,8 @@
 	td->uper_encoder   = asn_DEF_PER_Visible.uper_encoder;
 	td->oer_decoder    = asn_DEF_PER_Visible.oer_decoder;
 	td->oer_encoder    = asn_DEF_PER_Visible.oer_encoder;
+	if(!td->oer_constraints)
+		td->oer_constraints = asn_DEF_PER_Visible.oer_constraints;
 	if(!td->per_constraints)
 		td->per_constraints = asn_DEF_PER_Visible.per_constraints;
 	td->elements       = asn_DEF_PER_Visible.elements;
@@ -2463,9 +2504,9 @@
 	Not_PER_Visible_2_encode_der,
 	Not_PER_Visible_2_decode_xer,
 	Not_PER_Visible_2_encode_xer,
+	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	Not_PER_Visible_2_decode_uper,
 	Not_PER_Visible_2_encode_uper,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_Not_PER_Visible_2_tags_1,
 	sizeof(asn_DEF_Not_PER_Visible_2_tags_1)
@@ -2473,6 +2514,7 @@
 	asn_DEF_Not_PER_Visible_2_tags_1,	/* Same as above */
 	sizeof(asn_DEF_Not_PER_Visible_2_tags_1)
 		/sizeof(asn_DEF_Not_PER_Visible_2_tags_1[0]), /* 1 */
+	0,	/* No OER visible constraints */
 	&asn_PER_type_Not_PER_Visible_2_constr_1,
 	0, 0,	/* No members */
 	0	/* No specifics */
@@ -2559,6 +2601,8 @@
 	td->uper_encoder   = asn_DEF_PER_Visible.uper_encoder;
 	td->oer_decoder    = asn_DEF_PER_Visible.oer_decoder;
 	td->oer_encoder    = asn_DEF_PER_Visible.oer_encoder;
+	if(!td->oer_constraints)
+		td->oer_constraints = asn_DEF_PER_Visible.oer_constraints;
 	if(!td->per_constraints)
 		td->per_constraints = asn_DEF_PER_Visible.per_constraints;
 	td->elements       = asn_DEF_PER_Visible.elements;
@@ -2649,9 +2693,9 @@
 	Not_PER_Visible_3_encode_der,
 	Not_PER_Visible_3_decode_xer,
 	Not_PER_Visible_3_encode_xer,
+	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	Not_PER_Visible_3_decode_uper,
 	Not_PER_Visible_3_encode_uper,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_Not_PER_Visible_3_tags_1,
 	sizeof(asn_DEF_Not_PER_Visible_3_tags_1)
@@ -2659,6 +2703,7 @@
 	asn_DEF_Not_PER_Visible_3_tags_1,	/* Same as above */
 	sizeof(asn_DEF_Not_PER_Visible_3_tags_1)
 		/sizeof(asn_DEF_Not_PER_Visible_3_tags_1[0]), /* 1 */
+	0,	/* No OER visible constraints */
 	&asn_PER_type_Not_PER_Visible_3_constr_1,
 	0, 0,	/* No members */
 	0	/* No specifics */
@@ -2748,6 +2793,8 @@
 	td->uper_encoder   = asn_DEF_PER_Visible.uper_encoder;
 	td->oer_decoder    = asn_DEF_PER_Visible.oer_decoder;
 	td->oer_encoder    = asn_DEF_PER_Visible.oer_encoder;
+	if(!td->oer_constraints)
+		td->oer_constraints = asn_DEF_PER_Visible.oer_constraints;
 	if(!td->per_constraints)
 		td->per_constraints = asn_DEF_PER_Visible.per_constraints;
 	td->elements       = asn_DEF_PER_Visible.elements;
@@ -2838,9 +2885,9 @@
 	SIZE_but_not_FROM_encode_der,
 	SIZE_but_not_FROM_decode_xer,
 	SIZE_but_not_FROM_encode_xer,
+	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	SIZE_but_not_FROM_decode_uper,
 	SIZE_but_not_FROM_encode_uper,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_SIZE_but_not_FROM_tags_1,
 	sizeof(asn_DEF_SIZE_but_not_FROM_tags_1)
@@ -2848,6 +2895,7 @@
 	asn_DEF_SIZE_but_not_FROM_tags_1,	/* Same as above */
 	sizeof(asn_DEF_SIZE_but_not_FROM_tags_1)
 		/sizeof(asn_DEF_SIZE_but_not_FROM_tags_1[0]), /* 1 */
+	0,	/* No OER visible constraints */
 	&asn_PER_type_SIZE_but_not_FROM_constr_1,
 	0, 0,	/* No members */
 	0	/* No specifics */
@@ -2937,6 +2985,8 @@
 	td->uper_encoder   = asn_DEF_PER_Visible.uper_encoder;
 	td->oer_decoder    = asn_DEF_PER_Visible.oer_decoder;
 	td->oer_encoder    = asn_DEF_PER_Visible.oer_encoder;
+	if(!td->oer_constraints)
+		td->oer_constraints = asn_DEF_PER_Visible.oer_constraints;
 	if(!td->per_constraints)
 		td->per_constraints = asn_DEF_PER_Visible.per_constraints;
 	td->elements       = asn_DEF_PER_Visible.elements;
@@ -3027,9 +3077,9 @@
 	SIZE_and_FROM_encode_der,
 	SIZE_and_FROM_decode_xer,
 	SIZE_and_FROM_encode_xer,
+	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	SIZE_and_FROM_decode_uper,
 	SIZE_and_FROM_encode_uper,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_SIZE_and_FROM_tags_1,
 	sizeof(asn_DEF_SIZE_and_FROM_tags_1)
@@ -3037,6 +3087,7 @@
 	asn_DEF_SIZE_and_FROM_tags_1,	/* Same as above */
 	sizeof(asn_DEF_SIZE_and_FROM_tags_1)
 		/sizeof(asn_DEF_SIZE_and_FROM_tags_1[0]), /* 1 */
+	0,	/* No OER visible constraints */
 	&asn_PER_type_SIZE_and_FROM_constr_1,
 	0, 0,	/* No members */
 	0	/* No specifics */
@@ -3123,6 +3174,8 @@
 	td->uper_encoder   = asn_DEF_PER_Visible.uper_encoder;
 	td->oer_decoder    = asn_DEF_PER_Visible.oer_decoder;
 	td->oer_encoder    = asn_DEF_PER_Visible.oer_encoder;
+	if(!td->oer_constraints)
+		td->oer_constraints = asn_DEF_PER_Visible.oer_constraints;
 	if(!td->per_constraints)
 		td->per_constraints = asn_DEF_PER_Visible.per_constraints;
 	td->elements       = asn_DEF_PER_Visible.elements;
@@ -3213,9 +3266,9 @@
 	Neither_SIZE_nor_FROM_encode_der,
 	Neither_SIZE_nor_FROM_decode_xer,
 	Neither_SIZE_nor_FROM_encode_xer,
+	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	Neither_SIZE_nor_FROM_decode_uper,
 	Neither_SIZE_nor_FROM_encode_uper,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_Neither_SIZE_nor_FROM_tags_1,
 	sizeof(asn_DEF_Neither_SIZE_nor_FROM_tags_1)
@@ -3223,6 +3276,7 @@
 	asn_DEF_Neither_SIZE_nor_FROM_tags_1,	/* Same as above */
 	sizeof(asn_DEF_Neither_SIZE_nor_FROM_tags_1)
 		/sizeof(asn_DEF_Neither_SIZE_nor_FROM_tags_1[0]), /* 1 */
+	0,	/* No OER visible constraints */
 	&asn_PER_type_Neither_SIZE_nor_FROM_constr_1,
 	0, 0,	/* No members */
 	0	/* No specifics */
@@ -3303,6 +3357,8 @@
 	td->uper_encoder   = asn_DEF_UTF8String.uper_encoder;
 	td->oer_decoder    = asn_DEF_UTF8String.oer_decoder;
 	td->oer_encoder    = asn_DEF_UTF8String.oer_encoder;
+	if(!td->oer_constraints)
+		td->oer_constraints = asn_DEF_UTF8String.oer_constraints;
 	if(!td->per_constraints)
 		td->per_constraints = asn_DEF_UTF8String.per_constraints;
 	td->elements       = asn_DEF_UTF8String.elements;
@@ -3393,9 +3449,9 @@
 	Utf8_4_encode_der,
 	Utf8_4_decode_xer,
 	Utf8_4_encode_xer,
+	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	Utf8_4_decode_uper,
 	Utf8_4_encode_uper,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_Utf8_4_tags_1,
 	sizeof(asn_DEF_Utf8_4_tags_1)
@@ -3403,6 +3459,7 @@
 	asn_DEF_Utf8_4_tags_1,	/* Same as above */
 	sizeof(asn_DEF_Utf8_4_tags_1)
 		/sizeof(asn_DEF_Utf8_4_tags_1[0]), /* 1 */
+	0,	/* No OER visible constraints */
 	&asn_PER_type_Utf8_4_constr_1,
 	0, 0,	/* No members */
 	0	/* No specifics */
@@ -3511,6 +3568,8 @@
 	td->uper_encoder   = asn_DEF_Utf8_2.uper_encoder;
 	td->oer_decoder    = asn_DEF_Utf8_2.oer_decoder;
 	td->oer_encoder    = asn_DEF_Utf8_2.oer_encoder;
+	if(!td->oer_constraints)
+		td->oer_constraints = asn_DEF_Utf8_2.oer_constraints;
 	if(!td->per_constraints)
 		td->per_constraints = asn_DEF_Utf8_2.per_constraints;
 	td->elements       = asn_DEF_Utf8_2.elements;
@@ -3601,9 +3660,9 @@
 	Utf8_3_encode_der,
 	Utf8_3_decode_xer,
 	Utf8_3_encode_xer,
+	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	Utf8_3_decode_uper,
 	Utf8_3_encode_uper,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_Utf8_3_tags_1,
 	sizeof(asn_DEF_Utf8_3_tags_1)
@@ -3611,6 +3670,7 @@
 	asn_DEF_Utf8_3_tags_1,	/* Same as above */
 	sizeof(asn_DEF_Utf8_3_tags_1)
 		/sizeof(asn_DEF_Utf8_3_tags_1[0]), /* 1 */
+	0,	/* No OER visible constraints */
 	&asn_PER_type_Utf8_3_constr_1,
 	0, 0,	/* No members */
 	0	/* No specifics */
@@ -3689,6 +3749,8 @@
 	td->uper_encoder   = asn_DEF_Utf8_1.uper_encoder;
 	td->oer_decoder    = asn_DEF_Utf8_1.oer_decoder;
 	td->oer_encoder    = asn_DEF_Utf8_1.oer_encoder;
+	if(!td->oer_constraints)
+		td->oer_constraints = asn_DEF_Utf8_1.oer_constraints;
 	if(!td->per_constraints)
 		td->per_constraints = asn_DEF_Utf8_1.per_constraints;
 	td->elements       = asn_DEF_Utf8_1.elements;
@@ -3779,9 +3841,9 @@
 	Utf8_2_encode_der,
 	Utf8_2_decode_xer,
 	Utf8_2_encode_xer,
+	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	Utf8_2_decode_uper,
 	Utf8_2_encode_uper,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_Utf8_2_tags_1,
 	sizeof(asn_DEF_Utf8_2_tags_1)
@@ -3789,6 +3851,7 @@
 	asn_DEF_Utf8_2_tags_1,	/* Same as above */
 	sizeof(asn_DEF_Utf8_2_tags_1)
 		/sizeof(asn_DEF_Utf8_2_tags_1[0]), /* 1 */
+	0,	/* No OER visible constraints */
 	&asn_PER_type_Utf8_2_constr_1,
 	0, 0,	/* No members */
 	0	/* No specifics */
@@ -3843,6 +3906,8 @@
 	td->uper_encoder   = asn_DEF_UTF8String.uper_encoder;
 	td->oer_decoder    = asn_DEF_UTF8String.oer_decoder;
 	td->oer_encoder    = asn_DEF_UTF8String.oer_encoder;
+	if(!td->oer_constraints)
+		td->oer_constraints = asn_DEF_UTF8String.oer_constraints;
 	if(!td->per_constraints)
 		td->per_constraints = asn_DEF_UTF8String.per_constraints;
 	td->elements       = asn_DEF_UTF8String.elements;
@@ -3925,9 +3990,9 @@
 	Utf8_1_encode_der,
 	Utf8_1_decode_xer,
 	Utf8_1_encode_xer,
+	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	Utf8_1_decode_uper,
 	Utf8_1_encode_uper,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_Utf8_1_tags_1,
 	sizeof(asn_DEF_Utf8_1_tags_1)
@@ -3935,6 +4000,7 @@
 	asn_DEF_Utf8_1_tags_1,	/* Same as above */
 	sizeof(asn_DEF_Utf8_1_tags_1)
 		/sizeof(asn_DEF_Utf8_1_tags_1[0]), /* 1 */
+	0,	/* No OER visible constraints */
 	0,	/* No PER visible constraints */
 	0, 0,	/* No members */
 	0	/* No specifics */
@@ -4043,6 +4109,8 @@
 	td->uper_encoder   = asn_DEF_Identifier.uper_encoder;
 	td->oer_decoder    = asn_DEF_Identifier.oer_decoder;
 	td->oer_encoder    = asn_DEF_Identifier.oer_encoder;
+	if(!td->oer_constraints)
+		td->oer_constraints = asn_DEF_Identifier.oer_constraints;
 	if(!td->per_constraints)
 		td->per_constraints = asn_DEF_Identifier.per_constraints;
 	td->elements       = asn_DEF_Identifier.elements;
@@ -4125,9 +4193,9 @@
 	VisibleIdentifier_encode_der,
 	VisibleIdentifier_decode_xer,
 	VisibleIdentifier_encode_xer,
+	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	VisibleIdentifier_decode_uper,
 	VisibleIdentifier_encode_uper,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_VisibleIdentifier_tags_1,
 	sizeof(asn_DEF_VisibleIdentifier_tags_1)
@@ -4135,6 +4203,7 @@
 	asn_DEF_VisibleIdentifier_tags_1,	/* Same as above */
 	sizeof(asn_DEF_VisibleIdentifier_tags_1)
 		/sizeof(asn_DEF_VisibleIdentifier_tags_1[0]), /* 1 */
+	0,	/* No OER visible constraints */
 	0,	/* No PER visible constraints */
 	0, 0,	/* No members */
 	0	/* No specifics */
@@ -4213,6 +4282,8 @@
 	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
 	td->oer_decoder    = asn_DEF_NativeEnumerated.oer_decoder;
 	td->oer_encoder    = asn_DEF_NativeEnumerated.oer_encoder;
+	if(!td->oer_constraints)
+		td->oer_constraints = asn_DEF_NativeEnumerated.oer_constraints;
 	if(!td->per_constraints)
 		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
 	td->elements       = asn_DEF_NativeEnumerated.elements;
@@ -4451,9 +4522,9 @@
 	enum_c_6_encode_der,
 	enum_c_6_decode_xer,
 	enum_c_6_encode_xer,
+	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	enum_c_6_decode_uper,
 	enum_c_6_encode_uper,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_enum_c_tags_6,
 	sizeof(asn_DEF_enum_c_tags_6)
@@ -4461,6 +4532,7 @@
 	asn_DEF_enum_c_tags_6,	/* Same as above */
 	sizeof(asn_DEF_enum_c_tags_6)
 		/sizeof(asn_DEF_enum_c_tags_6[0]), /* 1 */
+	0,	/* No OER visible constraints */
 	&asn_PER_type_enum_c_constr_6,
 	0, 0,	/* Defined elsewhere */
 	&asn_SPC_enum_c_specs_6	/* Additional specs */
@@ -4472,6 +4544,7 @@
 		.tag_mode = 0,
 		.type = &asn_DEF_Int1,
 		.memb_constraints = memb_int1_c_constraint_1,
+		.oer_constraints = 0,	/* OER is not compiled, use -gen-OER */
 		.per_constraints = &asn_PER_memb_int1_c_constr_2,
 		.default_value = asn_DFL_2_set_3,	/* DEFAULT 3 */
 		.name = "int1-c"
@@ -4481,6 +4554,7 @@
 		.tag_mode = +1,	/* EXPLICIT tag at current level */
 		.type = &asn_DEF_Int4,
 		.memb_constraints = 0,	/* Defer constraints checking to the member type */
+		.oer_constraints = 0,	/* OER is not compiled, use -gen-OER */
 		.per_constraints = 0,	/* No PER visible constraints */
 		.default_value = 0,
 		.name = "int4"
@@ -4490,6 +4564,7 @@
 		.tag_mode = 0,
 		.type = &asn_DEF_Int4,
 		.memb_constraints = memb_int4_c_constraint_1,
+		.oer_constraints = 0,	/* OER is not compiled, use -gen-OER */
 		.per_constraints = &asn_PER_memb_int4_c_constr_4,
 		.default_value = 0,
 		.name = "int4-c"
@@ -4499,6 +4574,7 @@
 		.tag_mode = 0,
 		.type = &asn_DEF_BOOLEAN,
 		.memb_constraints = 0,	/* Defer constraints checking to the member type */
+		.oer_constraints = 0,	/* OER is not compiled, use -gen-OER */
 		.per_constraints = 0,	/* No PER visible constraints */
 		.default_value = asn_DFL_5_set_1,	/* DEFAULT 1 */
 		.name = "bool"
@@ -4508,6 +4584,7 @@
 		.tag_mode = 0,
 		.type = &asn_DEF_enum_c_6,
 		.memb_constraints = 0,	/* Defer constraints checking to the member type */
+		.oer_constraints = 0,	/* OER is not compiled, use -gen-OER */
 		.per_constraints = 0,	/* No PER visible constraints */
 		.default_value = 0,
 		.name = "enum-c"
@@ -4517,6 +4594,7 @@
 		.tag_mode = 0,
 		.type = &asn_DEF_NULL,
 		.memb_constraints = 0,	/* Defer constraints checking to the member type */
+		.oer_constraints = 0,	/* OER is not compiled, use -gen-OER */
 		.per_constraints = 0,	/* No PER visible constraints */
 		.default_value = 0,
 		.name = "null"
@@ -4526,6 +4604,7 @@
 		.tag_mode = 0,
 		.type = &asn_DEF_Int5,
 		.memb_constraints = memb_int5_c_constraint_1,
+		.oer_constraints = 0,	/* OER is not compiled, use -gen-OER */
 		.per_constraints = &asn_PER_memb_int5_c_constr_13,
 		.default_value = 0,
 		.name = "int5-c"
@@ -4564,9 +4643,9 @@
 	SEQUENCE_encode_der,
 	SEQUENCE_decode_xer,
 	SEQUENCE_encode_xer,
+	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	SEQUENCE_decode_uper,
 	SEQUENCE_encode_uper,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_Sequence_tags_1,
 	sizeof(asn_DEF_Sequence_tags_1)
@@ -4574,6 +4653,7 @@
 	asn_DEF_Sequence_tags_1,	/* Same as above */
 	sizeof(asn_DEF_Sequence_tags_1)
 		/sizeof(asn_DEF_Sequence_tags_1[0]), /* 1 */
+	0,	/* No OER visible constraints */
 	0,	/* No PER visible constraints */
 	asn_MBR_Sequence_1,
 	7,	/* Elements count */
@@ -4623,6 +4703,7 @@
 		.tag_mode = 0,
 		.type = &asn_DEF_Sequence,
 		.memb_constraints = 0,	/* Defer constraints checking to the member type */
+		.oer_constraints = 0,	/* OER is not compiled, use -gen-OER */
 		.per_constraints = 0,	/* No PER visible constraints */
 		.default_value = 0,
 		.name = ""
@@ -4646,9 +4727,9 @@
 	SEQUENCE_OF_encode_der,
 	SEQUENCE_OF_decode_xer,
 	SEQUENCE_OF_encode_xer,
+	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	SEQUENCE_OF_decode_uper,
 	SEQUENCE_OF_encode_uper,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_SequenceOf_tags_1,
 	sizeof(asn_DEF_SequenceOf_tags_1)
@@ -4656,6 +4737,7 @@
 	asn_DEF_SequenceOf_tags_1,	/* Same as above */
 	sizeof(asn_DEF_SequenceOf_tags_1)
 		/sizeof(asn_DEF_SequenceOf_tags_1[0]), /* 1 */
+	0,	/* No OER visible constraints */
 	&asn_PER_type_SequenceOf_constr_1,
 	asn_MBR_SequenceOf_1,
 	1,	/* Single element */
@@ -4718,6 +4800,8 @@
 	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
 	td->oer_decoder    = asn_DEF_NativeEnumerated.oer_decoder;
 	td->oer_encoder    = asn_DEF_NativeEnumerated.oer_encoder;
+	if(!td->oer_constraints)
+		td->oer_constraints = asn_DEF_NativeEnumerated.oer_constraints;
 	if(!td->per_constraints)
 		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
 	td->elements       = asn_DEF_NativeEnumerated.elements;
@@ -4825,9 +4909,9 @@
 	Enum0_encode_der,
 	Enum0_decode_xer,
 	Enum0_encode_xer,
+	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	Enum0_decode_uper,
 	Enum0_encode_uper,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_Enum0_tags_1,
 	sizeof(asn_DEF_Enum0_tags_1)
@@ -4835,6 +4919,7 @@
 	asn_DEF_Enum0_tags_1,	/* Same as above */
 	sizeof(asn_DEF_Enum0_tags_1)
 		/sizeof(asn_DEF_Enum0_tags_1[0]), /* 1 */
+	0,	/* No OER visible constraints */
 	&asn_PER_type_Enum0_constr_1,
 	0, 0,	/* Defined elsewhere */
 	&asn_SPC_Enum0_specs_1	/* Additional specs */
@@ -4913,6 +4998,8 @@
 	td->uper_encoder   = asn_DEF_NativeEnumerated.uper_encoder;
 	td->oer_decoder    = asn_DEF_NativeEnumerated.oer_decoder;
 	td->oer_encoder    = asn_DEF_NativeEnumerated.oer_encoder;
+	if(!td->oer_constraints)
+		td->oer_constraints = asn_DEF_NativeEnumerated.oer_constraints;
 	if(!td->per_constraints)
 		td->per_constraints = asn_DEF_NativeEnumerated.per_constraints;
 	td->elements       = asn_DEF_NativeEnumerated.elements;
@@ -5020,9 +5107,9 @@
 	Enum1_encode_der,
 	Enum1_decode_xer,
 	Enum1_encode_xer,
+	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	Enum1_decode_uper,
 	Enum1_encode_uper,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_Enum1_tags_1,
 	sizeof(asn_DEF_Enum1_tags_1)
@@ -5030,6 +5117,7 @@
 	asn_DEF_Enum1_tags_1,	/* Same as above */
 	sizeof(asn_DEF_Enum1_tags_1)
 		/sizeof(asn_DEF_Enum1_tags_1[0]), /* 1 */
+	0,	/* No OER visible constraints */
 	&asn_PER_type_Enum1_constr_1,
 	0, 0,	/* Defined elsewhere */
 	&asn_SPC_Enum1_specs_1	/* Additional specs */
@@ -5148,6 +5236,8 @@
 	td->uper_encoder   = asn_DEF_VisibleString.uper_encoder;
 	td->oer_decoder    = asn_DEF_VisibleString.oer_decoder;
 	td->oer_encoder    = asn_DEF_VisibleString.oer_encoder;
+	if(!td->oer_constraints)
+		td->oer_constraints = asn_DEF_VisibleString.oer_constraints;
 	if(!td->per_constraints)
 		td->per_constraints = asn_DEF_VisibleString.per_constraints;
 	td->elements       = asn_DEF_VisibleString.elements;
@@ -5239,9 +5329,9 @@
 	Identifier_encode_der,
 	Identifier_decode_xer,
 	Identifier_encode_xer,
+	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	Identifier_decode_uper,
 	Identifier_encode_uper,
-	0, 0,	/* No OER support, use "-gen-OER" to enable */
 	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_Identifier_tags_1,
 	sizeof(asn_DEF_Identifier_tags_1)
@@ -5249,6 +5339,7 @@
 	asn_DEF_Identifier_tags_1,	/* Same as above */
 	sizeof(asn_DEF_Identifier_tags_1)
 		/sizeof(asn_DEF_Identifier_tags_1[0]), /* 1 */
+	0,	/* No OER visible constraints */
 	&asn_PER_type_Identifier_constr_1,
 	0, 0,	/* No members */
 	0	/* No specifics */
