diff -ruN mknbi-1.4.4/nfl.c mknbi-1.4.4.thor/nfl.c
--- mknbi-1.4.4/nfl.c	2003-09-22 16:47:08.000000000 +0200
+++ mknbi-1.4.4.thor/nfl.c	2006-05-19 13:36:42.000000000 +0200
@@ -666,7 +666,7 @@
 	if (bhdr->b_signature != ELF_BHDR_MAGIC) {
 		return;
 	}
-
+	/* probably breaks nothing, but why declare unsigned char and make cast to (signed) char??? */
 	note = ((char *)bhdr) + sizeof(*bhdr);
 	end  = ((char *)bhdr) + bhdr->b_size;
 	while (note < end) {
diff -ruN mknbi-1.4.4/nfl.h mknbi-1.4.4.thor/nfl.h
--- mknbi-1.4.4/nfl.h	2003-01-12 09:39:03.000000000 +0100
+++ mknbi-1.4.4.thor/nfl.h	2006-05-19 13:36:42.000000000 +0200
@@ -182,7 +182,10 @@
 extern int auto_fill;
 
 /* This variable specifies which console should be used.  */
-extern int terminal;
+/* Decide if you want static _or_ external!
+   gcc-4 finally starts complaining about this nonsense.
+   (plus: no file besides nfl.c uses this header anyway...)
+extern int terminal; */
 
 #define TERMINAL_CONSOLE	(1 << 0)	/* keyboard and screen */
 #define TERMINAL_SERIAL		(1 << 1)	/* serial console */