diff --git a/contrib/cube/cubescan.l b/contrib/cube/cubescan.l
index 289d23120dd005c57528ad531a3579676ba96ec9..9d2b4ae18cb2b4e917cdb3f3d305c752af1f7d55 100644
--- a/contrib/cube/cubescan.l
+++ b/contrib/cube/cubescan.l
@@ -9,6 +9,7 @@
 #define YY_READ_BUF_SIZE 16777216
 
 /* Avoid exit() on fatal scanner errors (a bit ugly -- see yy_fatal_error) */
+#undef fprintf
 #define fprintf(file, fmt, msg)  ereport(ERROR, (errmsg_internal("%s", msg)))
 
 /* Handles to the buffer that the lexer uses internally */
diff --git a/contrib/seg/segscan.l b/contrib/seg/segscan.l
index 24ad662910fcced3ee97b705c661e63dc3ef7838..817300993dde034d2d80081685c2150dd5f8416a 100644
--- a/contrib/seg/segscan.l
+++ b/contrib/seg/segscan.l
@@ -9,6 +9,7 @@
 #define YY_READ_BUF_SIZE 16777216
 
 /* Avoid exit() on fatal scanner errors (a bit ugly -- see yy_fatal_error) */
+#undef fprintf
 #define fprintf(file, fmt, msg)  ereport(ERROR, (errmsg_internal("%s", msg)))
 
 /* Handles to the buffer that the lexer uses internally */
diff --git a/contrib/tsearch2/wordparser/parser.l b/contrib/tsearch2/wordparser/parser.l
index 179c99c9dac53234732216be1dafb5404f3eef4d..a7cb4684c32868b4c432b1b76ad4477afafcb9ad 100644
--- a/contrib/tsearch2/wordparser/parser.l
+++ b/contrib/tsearch2/wordparser/parser.l
@@ -6,6 +6,7 @@
 #include "common.h"
 
 /* Avoid exit() on fatal scanner errors */
+#undef fprintf
 #define fprintf(file, fmt, msg)  ts_error(ERROR, fmt, msg)
 
 char *token = NULL;  /* pointer to token */