diff --git a/libasn1fix/asn1fix_param.c b/libasn1fix/asn1fix_param.c
index ba624cb..159dbbc 100644
--- a/libasn1fix/asn1fix_param.c
+++ b/libasn1fix/asn1fix_param.c
@@ -64,7 +64,8 @@
 	&& (from)->tag.tag_class) {				\
 		FATAL("Layered tagging in parametrization "	\
 		"is not yet supported, "			\
-		"contact asn1c author for assistance with");	\
+		"contact asn1c author for assistance "		\
+		"with line %d", (to)->_lineno);			\
 		return -1;					\
 	}							\
 	/* This code shall not be invoked too early */		\
diff --git a/libasn1parser/asn1p_expr.c b/libasn1parser/asn1p_expr.c
index 5e2aa34..f5626a7 100644
--- a/libasn1parser/asn1p_expr.c
+++ b/libasn1parser/asn1p_expr.c
@@ -144,7 +144,7 @@
 
 
 char *asn1p_tag2string(struct asn1p_type_tag_s *tag, char *buf) {
-	static buf_stat[TAG2STRING_BUFFER_SIZE];
+	static char buf_stat[TAG2STRING_BUFFER_SIZE];
 	char *start;
 	char *end;
 
@@ -170,7 +170,7 @@
 	}
 	buf += snprintf(buf + strlen(buf), end - buf,
 		"%" PRIdASN "]", tag->tag_value);
-	assert((buf - end) > sizeof(" IMPLICIT "));
+	assert((unsigned int)(buf - end) > sizeof(" IMPLICIT "));
 
 	switch(tag->tag_mode) {
 	case TM_DEFAULT: break;
diff --git a/libasn1parser/asn1p_y.c b/libasn1parser/asn1p_y.c
index bc49551..5b3c4ad 100644
--- a/libasn1parser/asn1p_y.c
+++ b/libasn1parser/asn1p_y.c
@@ -394,7 +394,7 @@
   1876,  1879,  1884,  1906,  1911,  1916,  1922,  1928,  1936,  1944,
   1952,  1959,  1969,  1974,  2004,  2006,  2009,  2016,  2022,  2024,
   2025,  2026,  2029,  2031,  2032,  2035,  2040,  2047,  2054,  2056,
-  2060
+  2061
 };
 #endif
 
@@ -3410,7 +3410,7 @@
 	;
     break;}
 case 271:
-#line 2061 "asn1p_y.y"
+#line 2062 "asn1p_y.y"
 {
 		checkmem(yyvsp[0].tv_str);
 		yyval.tv_str = yyvsp[0].tv_str;
@@ -3490,7 +3490,7 @@
 	  count = 0;
 	  /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
 	  for (x = (yyn < 0 ? -yyn : 0);
-	       x < (ssize_t)(sizeof(yytname) / sizeof(char *)); x++)
+	       x < (sizeof(yytname) / sizeof(char *)); x++)
 	    if (yycheck[x + yyn] == x)
 	      size += strlen(yytname[x]) + 15, count++;
 	  msg = (char *) malloc(size + 15);
@@ -3502,7 +3502,7 @@
 		{
 		  count = 0;
 		  for (x = (yyn < 0 ? -yyn : 0);
-		       x < (ssize_t)(sizeof(yytname) / sizeof(char *)); x++)
+		       x < (sizeof(yytname) / sizeof(char *)); x++)
 		    if (yycheck[x + yyn] == x)
 		      {
 			strcat(msg, count == 0 ? ", expecting `" : " or `");
@@ -3638,7 +3638,7 @@
     }
   return 1;
 }
-#line 2067 "asn1p_y.y"
+#line 2068 "asn1p_y.y"
 
 
 
diff --git a/libasn1parser/asn1p_y.y b/libasn1parser/asn1p_y.y
index da06b4c..e7ff051 100644
--- a/libasn1parser/asn1p_y.y
+++ b/libasn1parser/asn1p_y.y
@@ -2056,6 +2056,7 @@
 	| Identifier {
 		$$ = $1;
 	}
+	;
 
 Identifier:
 	TOK_identifier {
