diff -ur bison-2.4.orig/lib/config.charset bison-2.4/lib/config.charset
--- bison-2.4.orig/lib/config.charset	2008-11-02 21:59:28.000000000 +0000
+++ bison-2.4/lib/config.charset	2008-11-09 14:56:56.000000000 +0000
@@ -478,8 +478,8 @@
 	# space nevertheless.
 	echo "* UTF-8"
 	;;
-    beos*)
-	# BeOS has a single locale, and it has UTF-8 encoding.
+    beos*|haiku*)
+	# BeOS has a single locale, and it has UTF-8 encoding. Same for Haiku.
 	echo "* UTF-8"
 	;;
     msdosdjgpp*)
diff -ur bison-2.4.orig/src/location.c bison-2.4/src/location.c
--- bison-2.4.orig/src/location.c	2008-08-17 06:15:28.000000000 +0000
+++ bison-2.4/src/location.c	2008-11-09 15:03:06.000000000 +0000
@@ -121,11 +121,11 @@
   /* Must search in reverse since the file name field may
    * contain `.' or `:'.  */
   char *delim = strrchr (loc_str, '.');
-  aver (delim);
+  aver (delim != NULL);
   *delim = '\0';
   bound->column = atoi (delim+1);
   delim = strrchr (loc_str, ':');
-  aver (delim);
+  aver (delim != NULL);
   *delim = '\0';
   bound->line = atoi (delim+1);
   bound->file = uniqstr_new (loc_str);
diff -ur bison-2.4.orig/src/muscle_tab.c bison-2.4/src/muscle_tab.c
--- bison-2.4.orig/src/muscle_tab.c	2008-08-17 06:15:28.000000000 +0000
+++ bison-2.4/src/muscle_tab.c	2008-11-09 15:11:17.000000000 +0000
@@ -336,7 +336,7 @@
 {
   location loc;
   char const *value = muscle_find_const (key);
-  aver (value);
+  aver (value != NULL);
   aver (*value == '[');
   aver (*++value == '[');
   while (*++value)

Patch for bison 2.4, Haiku.
Patch for bison 2.4, Haiku.

