diff --git a/src/gui.c b/src/gui.c
index 5959043..13b65cb 100644
--- a/src/gui.c
+++ b/src/gui.c
@@ -5107,7 +5107,8 @@
 # endif
 #endif
 
-#if defined(FEAT_GUI_GTK) || defined(FEAT_GUI_X11) || defined(PROTO)
+#if defined(FEAT_GUI_GTK) || defined(FEAT_GUI_X11)|| defined(FEAT_GUI_HAIKU) \
+	|| defined(PROTO)
     void
 display_errors(void)
 {
diff --git a/src/gui_haiku.cc b/src/gui_haiku.cc
index 2dbd852..ff460ad 100644
--- a/src/gui_haiku.cc
+++ b/src/gui_haiku.cc
@@ -551,7 +551,7 @@
 };
 
 #define RGB(r, g, b)	((char_u)(r) << 16 | (char_u)(g) << 8 | (char_u)(b) << 0)
-#define GUI_TO_RGB(g)	{ (g) >> 16, (g) >> 8, (g) >> 0, 255 }
+#define GUI_TO_RGB(g)	{ (char_u)((g) >> 16), (char_u)((g) >> 8), (char_u)((g) >> 0), 255 }
 
 // ---------------- end of header part ----------------
 
@@ -3990,40 +3990,6 @@
     return OK;
 }
 
-/*
- * Display the saved error message(s).
- */
-#ifdef USE_MCH_ERRMSG
-    void
-display_errors(void)
-{
-    char    *p;
-    char_u  pError[256];
-
-    if (error_ga.ga_data == NULL)
-    return;
-
-    // avoid putting up a message box with blanks only
-    for (p = (char *)error_ga.ga_data; *p; ++p)
-    if (!isspace(*p))
-    {
-	if (STRLEN(p) > 255)
-	pError[0] = 255;
-	else
-	pError[0] = STRLEN(p);
-
-	STRNCPY(&pError[1], p, pError[0]);
-//	ParamText(pError, nil, nil, nil);
-//	Alert(128, nil);
-	break;
-	// TODO: handled message longer than 256 chars
-	//   use auto-sizeable alert
-	//   or dialog with scrollbars (TextEdit zone)
-    }
-    ga_clear(&error_ga);
-}
-#endif
-
     void
 gui_mch_getmouse(int *x, int *y)
 {
diff --git a/src/version.c b/src/version.c
index 8b9fec5..5e35da8 100644
--- a/src/version.c
+++ b/src/version.c
@@ -747,6 +747,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    671,
+/**/
     670,
 /**/
     669,
