diff --git a/asn1c/tests/check-126.-gen-PER.c b/asn1c/tests/check-126.-gen-PER.c
index 5df2c78..eac2793 100644
--- a/asn1c/tests/check-126.-gen-PER.c
+++ b/asn1c/tests/check-126.-gen-PER.c
@@ -224,8 +224,12 @@
 
 	fprintf(stderr, "Comparing PER output with [%s]\n", outName);
 
-	f = fopen(outName, "r");
-	if(f) {
+	if(getenv("REGENERATE")) {
+		f = fopen(outName, "w");
+		fwrite(buf, 1, size, f);
+		fclose(f);
+	} else {
+		f = fopen(outName, "r");
 		assert(f);
 		rd = fread(fbuf, 1, sizeof(fbuf), f);
 		assert(rd);
@@ -234,10 +238,6 @@
 		assert(rd == size);
 		assert(memcmp(fbuf, buf, rd) == 0);
 		fprintf(stderr, "XER->PER recoding .in->.out match.\n");
-	} else if(getenv("REGENERATE")) {
-		f = fopen(outName, "w");
-		fwrite(buf, 1, size, f);
-		fclose(f);
 	}
 }
 
diff --git a/asn1c/tests/data-126/data-126-01.out b/asn1c/tests/data-126/data-126-01.out
new file mode 100644
index 0000000..0f23c82
--- /dev/null
+++ b/asn1c/tests/data-126/data-126-01.out
Binary files differ
diff --git a/skeletons/constr_SEQUENCE.c b/skeletons/constr_SEQUENCE.c
index a6d12fa..9f870f7 100644
--- a/skeletons/constr_SEQUENCE.c
+++ b/skeletons/constr_SEQUENCE.c
@@ -1170,9 +1170,11 @@
 	void *buf;
 	ssize_t size;
 
+	ASN_DEBUG("Encoding as open type %s", td->name);
 	size = uper_encode_to_new_buffer(td, constraints, sptr, &buf);
 	if(size <= 0) return -1;
 
+	ASN_DEBUG("Putting %s of length %d", td->name, size);
 	while(size) {
 		ssize_t maySave = uper_put_length(po, size);
 		if(maySave < 0) break;
@@ -1194,7 +1196,8 @@
 		asn_per_outp_t *po1, asn_per_outp_t *po2) {
 	asn_SEQUENCE_specifics_t *specs
 		= (asn_SEQUENCE_specifics_t *)td->specifics;
-	int num = 0;
+	int exts_present = 0;
+	int exts_count = 0;
 	int edx;
 
 	if(specs->ext_before < 0)
@@ -1207,8 +1210,10 @@
 		void **memb_ptr2;	/* Pointer to that pointer */
 		int present;
 
-		if(!IN_EXTENSION_GROUP(specs, edx))
+		if(!IN_EXTENSION_GROUP(specs, edx)) {
+			ASN_DEBUG("%d is not extension", edx);
 			continue;
+		}
 
 		/* Fetch the pointer to this member */
 		if(elm->flags & ATF_POINTER) {
@@ -1221,7 +1226,8 @@
 		}
 
 		ASN_DEBUG("checking ext %d is present => %d", edx, present);
-		num += present;
+		exts_count++;
+		exts_present += present;
 
 		/* Encode as presence marker */
 		if(po1 && per_put_few_bits(po1, present, 1))
@@ -1233,7 +1239,7 @@
 
 	}
 
-	return num;
+	return exts_present ? exts_count : 0;
 }
 
 asn_enc_rval_t
