diff --git a/asn1c/enber.c b/asn1c/enber.c
index 714f466..75286f3 100644
--- a/asn1c/enber.c
+++ b/asn1c/enber.c
@@ -1,5 +1,5 @@
 /*-
- * Copyright (c) 2004 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Copyright (c) 2004, 2005 Lev Walkin <vlm@lionet.info>. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -35,7 +35,7 @@
 
 #undef  COPYRIGHT
 #define COPYRIGHT       \
-	"Copyright (c) 2004 Lev Walkin <vlm@lionet.info>\n"
+	"Copyright (c) 2004, 2005 Lev Walkin <vlm@lionet.info>\n"
 
 static void usage(const char *av0, int);/* Print the Usage screen and exit */
 static int process(const char *fname);	/* Perform the BER decoding */
@@ -58,9 +58,6 @@
 		break;
 	case 'v':
 		usage(av[0], 1);
-		fprintf(stderr, "Convert unber(1)'s output back into BER, "
-			"v" VERSION "\n" COPYRIGHT);
-		exit(0);
 		break;
 	case 'h':
 	default:
@@ -209,14 +206,16 @@
 	}
 	cl = line;
 	if(*cl != '>') {
-		fprintf(stderr, "%s: Missing '>'\n", fname);
+		fprintf(stderr, "%s: Missing '>' at line %d\n", fname, lineno);
 		exit(EX_DATAERR);
 	}
 
 	/* Ignore closing tags */
 	if(op[1] == '/') {
 		if(strchr(cl, '<')) {	/* We are not very robust */
-			fprintf(stderr, "%s: Multiple tags per line\n", fname);
+			fprintf(stderr,
+				"%s: Multiple tags per line at line %d\n",
+				fname, lineno);
 			exit(EX_DATAERR);
 		}
 		/* End-of-content octets */
@@ -228,20 +227,23 @@
 	}
 
 	switch(op[1]) {
+	case '!': return 0;	/* A comment */
+	case '?': return 0;	/* An XML preamble */
 	case 'C': constr = 1; break;
 	case 'P': constr = 0; break;
 	case 'I': constr = 2; break;
 	default:
 		fprintf(stderr,
-			"%s: Expected \"C\"/\"P\"/\"I\" as the XML tag name (%c)\n",
-				fname, op[1]);
+			"%s: Expected \"C\"/\"P\"/\"I\" as the XML tag name (%c) at line %d\n",
+				fname, op[1], lineno);
 		exit(EX_DATAERR);
 	}
 
 	*cl = '\0';
 	if(cl[-1] == 'F') {
-		fprintf(stderr, "%s: Uses pretty-printing of values. "
-			"Use -p option to unber\n", fname);
+		fprintf(stderr,
+			"%s: Detected pretty-printing of primitive types at line %d. "
+			"Re-run `unber` with -p option to disable pretty-printing.\n", fname, lineno);
 		exit(EX_DATAERR);
 	}
 
