inner structures tagging fix. see 0.9.5 comment in ChangeLog

diff --git a/libasn1fix/asn1fix_tags.c b/libasn1fix/asn1fix_tags.c
index 6d88798..ed08513 100644
--- a/libasn1fix/asn1fix_tags.c
+++ b/libasn1fix/asn1fix_tags.c
@@ -2,7 +2,7 @@
 
 #define	ADD_TAG(skip, newtag)	do {					\
 	void *__p;							\
-	if(skip) {							\
+	if(skip && !(flags & AFT_FULL_COLLECT)) {			\
 		if(newtag.tag_mode != TM_IMPLICIT)			\
 			skip--;						\
 		break;							\
diff --git a/libasn1fix/asn1fix_tags.h b/libasn1fix/asn1fix_tags.h
index 394c3e8..a4c31ad 100644
--- a/libasn1fix/asn1fix_tags.h
+++ b/libasn1fix/asn1fix_tags.h
@@ -4,6 +4,7 @@
 enum asn1f_aft_flags_e {
 	AFT_IMAGINARY_ANY	= 0x01,	/* Treat ANY tag as [IMAGINARY ANY] */
 	AFT_FETCH_OUTMOST	= 0x02,	/* Fetch only outmost tag */
+	AFT_FULL_COLLECT	= 0x04,	/* Collect all tags */
 };
 
 /*