diff --git a/libasn1fix/asn1fix_bitstring.c b/libasn1fix/asn1fix_bitstring.c
index f8adc75..e2f2434 100644
--- a/libasn1fix/asn1fix_bitstring.c
+++ b/libasn1fix/asn1fix_bitstring.c
@@ -36,17 +36,28 @@
 asn1f_fix_bit_string_type(arg_t *arg) {
 	asn1p_expr_t *expr = arg->expr;
 	asn1p_expr_t *v;
+	int r_value = 0;
+	int ret;
 
 	TQ_FOR(v, &(expr->members), next) {
+		/* Check identifier uniqueness as per 21.4 */
+		ret = asn1f_check_unique_expr_child(arg, v, 0);
+		RET2RVAL(ret, r_value);
+
+		if(v->expr_type == A1TC_EXTENSIBLE) {
+			FATAL("Extension marker (...) is not allowed "
+				"as a BIT STRING NamedBit at line %d ",
+				v->_lineno);
+			return -1;
+		}
 		if(v->expr_type != A1TC_UNIVERVAL) {
 			FATAL("BIT STRING value at line %d "
-				"is not an identifier",
-				v->_lineno);
+				"is not an identifier", v->_lineno);
 			return -1;
 		}
 	}
 
-	return 0;
+	return r_value;
 }
 
 static int
diff --git a/libasn1fix/asn1fix_enum.c b/libasn1fix/asn1fix_enum.c
index ce2fc2f..cf03914 100644
--- a/libasn1fix/asn1fix_enum.c
+++ b/libasn1fix/asn1fix_enum.c
@@ -34,8 +34,7 @@
 		 */
 		if(ev->expr_type == A1TC_EXTENSIBLE) {
 			if(ext_marker) {
-				arg->eh(1,
-				"Enumeration %s at line %d: "
+				FATAL("Enumeration %s at line %d: "
 				"Second extension marker is not allowed",
 				expr->Identifier,
 				ev->_lineno);
diff --git a/libasn1fix/asn1fix_integer.c b/libasn1fix/asn1fix_integer.c
index 8a14491..0302acd 100644
--- a/libasn1fix/asn1fix_integer.c
+++ b/libasn1fix/asn1fix_integer.c
@@ -38,20 +38,17 @@
 		 * Found "...", check correctness.
 		 */
 		if(iv->expr_type == A1TC_EXTENSIBLE) {
-			arg->eh(1,
-				"INTEGER %s at line %d: "
+			FATAL("INTEGER %s at line %d: "
 				"Extension marker is not allowed",
 				expr->Identifier,
-				iv->_lineno
-			);
+				iv->_lineno);
 			rvalue = -1;
 			continue;
 		}
 
 		if(iv->Identifier == NULL
 		|| iv->expr_type != A1TC_UNIVERVAL) {
-			arg->eh(1,
-				"INTEGER %s at line %d: "
+			FATAL("INTEGER %s at line %d: "
 				"Unsupported enumeration element %s",
 				expr->Identifier,
 				iv->_lineno,
@@ -62,8 +59,7 @@
 		}
 
 		if(iv->value == NULL) {
-			arg->eh(1,
-				"INTEGER %s at line %d: "
+			FATAL("INTEGER %s at line %d: "
 				"Value for the identifier %s "
 				"must be set explicitly",
 				expr->Identifier,
@@ -84,8 +80,7 @@
 		}
 
 		if(iv->value->type != ATV_INTEGER) {
-			arg->eh(1,
-				"INTEGER %s at line %d: "
+			FATAL("INTEGER %s at line %d: "
 				"Value for the identifier %s "
 				"is not compatible with INTEGER type",
 				expr->Identifier,
diff --git a/libasn1fix/asn1fix_misc.c b/libasn1fix/asn1fix_misc.c
index 72317aa..9e8cc07 100644
--- a/libasn1fix/asn1fix_misc.c
+++ b/libasn1fix/asn1fix_misc.c
@@ -294,8 +294,7 @@
 			msg = opt_compare
 				?"Expressions clash"
 				:"Identifiers name clash";
-			arg->eh(1,
-				"%s: "
+			FATAL("%s: "
 				"\"%s\" at line %d has similar %s with "
 				"\"%s\" at line %d",
 				msg,
