diff --git a/src/bin/initdb/initdb.c b/src/bin/initdb/initdb.c
index 45d786f5c43f9070d09fde8098cd674285c3980a..5f3294630e43318aa27e79808418436028792fe8 100644
--- a/src/bin/initdb/initdb.c
+++ b/src/bin/initdb/initdb.c
@@ -42,7 +42,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  * Portions taken from FreeBSD.
  *
- * $PostgreSQL: pgsql/src/bin/initdb/initdb.c,v 1.137 2007/05/31 15:13:03 petere Exp $
+ * $PostgreSQL: pgsql/src/bin/initdb/initdb.c,v 1.138 2007/07/11 23:15:38 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -2155,6 +2155,13 @@ escape_quotes(const char *src)
 	return result;
 }
 
+/* Hack to suppress a warning about %x from some versions of gcc */
+static inline size_t
+my_strftime(char *s, size_t max, const char *fmt, const struct tm *tm)
+{
+	return strftime(s, max, fmt, tm);
+}
+
 /*
  * Determine likely date order from locale
  */
@@ -2184,7 +2191,7 @@ locale_date_order(const char *locale)
 	testtime.tm_mon = 10;		/* November, should come out as "11" */
 	testtime.tm_year = 133;		/* 2033 */
 
-	res = strftime(buf, sizeof(buf), "%x", &testtime);
+	res = my_strftime(buf, sizeof(buf), "%x", &testtime);
 
 	setlocale(LC_TIME, save);
 	free(save);