per support

diff --git a/tests/110-param-3-OK.asn1.-P b/tests/110-param-3-OK.asn1.-P
index 429bf58..154e8da 100644
--- a/tests/110-param-3-OK.asn1.-P
+++ b/tests/110-param-3-OK.asn1.-P
@@ -62,6 +62,7 @@
 	td->xer_decoder    = asn_DEF_ENUMERATED.xer_decoder;
 	td->xer_encoder    = asn_DEF_ENUMERATED.xer_encoder;
 	td->uper_decoder   = asn_DEF_ENUMERATED.uper_decoder;
+	td->uper_encoder   = asn_DEF_ENUMERATED.uper_encoder;
 	if(!td->per_constraints)
 		td->per_constraints = asn_DEF_ENUMERATED.per_constraints;
 	td->elements       = asn_DEF_ENUMERATED.elements;
@@ -116,16 +117,25 @@
 
 /*** <<< STAT-DEFS [Flag] >>> ***/
 
-static int asn_DFL_2_set_5(void **sptr) {
+static int asn_DFL_2_set_5(int set_value, void **sptr) {
 	INTEGER_t *st = *sptr;
 	
 	if(!st) {
+		if(!set_value) return -1;	/* Not a default value */
 		st = (*sptr = CALLOC(1, sizeof(*st)));
 		if(!st) return -1;
 	}
 	
-	/* Install default value 5 */
-	return asn_long2INTEGER(st, 5);
+	if(set_value) {
+		/* Install default value 5 */
+		return asn_long2INTEGER(st, 5);
+	} else {
+		/* Test default value 5 */
+		long value;
+		if(asn_INTEGER2long(st, &value))
+			return -1;
+		return (value == 5);
+	}
 }
 static asn_TYPE_member_t asn_MBR_Flag_16P0_1[] = {
 	{ ATF_POINTER, 1, offsetof(struct Flag_16P0, field),
@@ -163,7 +173,7 @@
 	SEQUENCE_encode_der,
 	SEQUENCE_decode_xer,
 	SEQUENCE_encode_xer,
-	0,	/* No PER decoder, -gen-PER to enable */
+	0, 0,	/* No PER support, use "-gen-PER" to enable */
 	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_Flag_16P0_tags_1,
 	sizeof(asn_DEF_Flag_16P0_tags_1)
@@ -177,16 +187,25 @@
 	&asn_SPC_Flag_16P0_specs_1	/* Additional specs */
 };
 
-static int asn_DFL_7_set_5(void **sptr) {
+static int asn_DFL_7_set_5(int set_value, void **sptr) {
 	ENUMERATED_t *st = *sptr;
 	
 	if(!st) {
+		if(!set_value) return -1;	/* Not a default value */
 		st = (*sptr = CALLOC(1, sizeof(*st)));
 		if(!st) return -1;
 	}
 	
-	/* Install default value 5 */
-	return asn_long2INTEGER(st, 5);
+	if(set_value) {
+		/* Install default value 5 */
+		return asn_long2INTEGER(st, 5);
+	} else {
+		/* Test default value 5 */
+		long value;
+		if(asn_INTEGER2long(st, &value))
+			return -1;
+		return (value == 5);
+	}
 }
 static asn_INTEGER_enum_map_t asn_MAP_field_value2enum_7[] = {
 	{ 3,	3,	"red" },
@@ -219,7 +238,7 @@
 	field_7_encode_der,
 	field_7_decode_xer,
 	field_7_encode_xer,
-	0,	/* No PER decoder, -gen-PER to enable */
+	0, 0,	/* No PER support, use "-gen-PER" to enable */
 	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_field_tags_7,
 	sizeof(asn_DEF_field_tags_7)
@@ -268,7 +287,7 @@
 	SEQUENCE_encode_der,
 	SEQUENCE_decode_xer,
 	SEQUENCE_encode_xer,
-	0,	/* No PER decoder, -gen-PER to enable */
+	0, 0,	/* No PER support, use "-gen-PER" to enable */
 	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_Flag_16P1_tags_6,
 	sizeof(asn_DEF_Flag_16P1_tags_6)
@@ -325,6 +344,7 @@
 	td->xer_decoder    = asn_DEF_Flag_16P0.xer_decoder;
 	td->xer_encoder    = asn_DEF_Flag_16P0.xer_encoder;
 	td->uper_decoder   = asn_DEF_Flag_16P0.uper_decoder;
+	td->uper_encoder   = asn_DEF_Flag_16P0.uper_encoder;
 	if(!td->per_constraints)
 		td->per_constraints = asn_DEF_Flag_16P0.per_constraints;
 	td->elements       = asn_DEF_Flag_16P0.elements;
@@ -392,7 +412,7 @@
 	IntegerColorFlag_encode_der,
 	IntegerColorFlag_decode_xer,
 	IntegerColorFlag_encode_xer,
-	0,	/* No PER decoder, -gen-PER to enable */
+	0, 0,	/* No PER support, use "-gen-PER" to enable */
 	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_IntegerColorFlag_tags_1,
 	sizeof(asn_DEF_IntegerColorFlag_tags_1)
@@ -448,6 +468,7 @@
 	td->xer_decoder    = asn_DEF_Flag_16P1.xer_decoder;
 	td->xer_encoder    = asn_DEF_Flag_16P1.xer_encoder;
 	td->uper_decoder   = asn_DEF_Flag_16P1.uper_decoder;
+	td->uper_encoder   = asn_DEF_Flag_16P1.uper_encoder;
 	if(!td->per_constraints)
 		td->per_constraints = asn_DEF_Flag_16P1.per_constraints;
 	td->elements       = asn_DEF_Flag_16P1.elements;
@@ -515,7 +536,7 @@
 	EnumeratedColorFlag_encode_der,
 	EnumeratedColorFlag_decode_xer,
 	EnumeratedColorFlag_encode_xer,
-	0,	/* No PER decoder, -gen-PER to enable */
+	0, 0,	/* No PER support, use "-gen-PER" to enable */
 	0,	/* Use generic outmost tag fetcher */
 	asn_DEF_EnumeratedColorFlag_tags_1,
 	sizeof(asn_DEF_EnumeratedColorFlag_tags_1)