diff --git a/src/port/snprintf.c b/src/port/snprintf.c
index d945304b26a3f151f59519c056786ada32ab5d81..f52e1f4fe1d09ddc3714e156d274938024fe22f3 100644
--- a/src/port/snprintf.c
+++ b/src/port/snprintf.c
@@ -66,28 +66,27 @@
  * causing nasty effects.
  **************************************************************/
 
-/*static char _id[] = "$PostgreSQL: pgsql/src/port/snprintf.c,v 1.10 2005/03/02 00:02:13 momjian Exp $";*/
+/*static char _id[] = "$PostgreSQL: pgsql/src/port/snprintf.c,v 1.11 2005/03/02 03:21:52 momjian Exp $";*/
 
 int			snprintf(char *str, size_t count, const char *fmt,...);
 int			vsnprintf(char *str, size_t count, const char *fmt, va_list args);
 int			printf(const char *format, ...);
 static void dopr(char *buffer, const char *format, va_list args, char *end);
 
+/*
+ *	If vsnprintf() is not before snprintf() in this file, snprintf()
+ *	will call the system vsnprintf() on MinGW.
+ */
 int
-printf(const char *fmt,...)
+vsnprintf(char *str, size_t count, const char *fmt, va_list args)
 {
-	int			len;
-	va_list			args;
-	char*		buffer[4096];
-	char*			p;
-
-	va_start(args, fmt);
-	len = vsnprintf((char*)buffer, (size_t)4096, fmt, args);
-	va_end(args);
-	p = (char*)buffer;
-	for(;*p;p++)
-		putchar(*p);
-	return len;
+	char *end;
+	str[0] = '\0';
+	end = str + count - 1;
+	dopr(str, fmt, args, end);
+	if (count > 0)
+		end[0] = '\0';
+	return strlen(str);
 }
 
 int
@@ -102,17 +101,21 @@ snprintf(char *str, size_t count, const char *fmt,...)
 	return len;
 }
 
-
 int
-vsnprintf(char *str, size_t count, const char *fmt, va_list args)
+printf(const char *fmt,...)
 {
-	char *end;
-	str[0] = '\0';
-	end = str + count - 1;
-	dopr(str, fmt, args, end);
-	if (count > 0)
-		end[0] = '\0';
-	return strlen(str);
+	int			len;
+	va_list			args;
+	char*		buffer[4096];
+	char*			p;
+
+	va_start(args, fmt);
+	len = vsnprintf((char*)buffer, (size_t)4096, fmt, args);
+	va_end(args);
+	p = (char*)buffer;
+	for(;*p;p++)
+		putchar(*p);
+	return len;
 }
 
 /*