diff --git a/src/backend/port/snprintf.c b/src/backend/port/snprintf.c
index be31ff784bf247c455cb99ba92d56041e12a4215..8cc3e4bfe4f5f643330b7a35da4000ce4e448cda 100644
--- a/src/backend/port/snprintf.c
+++ b/src/backend/port/snprintf.c
@@ -31,9 +31,18 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  */
-
+#if 0
 # include "sendmail.h"
 # include "pathnames.h"
+#endif
+
+# include "postgres.h"
+
+# include <stdarg.h>
+# define VA_LOCAL_DECL  va_list args;
+# define VA_START(f)    va_start(args, f)
+# define VA_END     va_end(args)
+
 # include <sys/ioctl.h>
 # include <sys/param.h>
 
@@ -59,50 +68,43 @@
  * causing nast effects.
  **************************************************************/
 
-/*static char _id[] = "$Id: snprintf.c,v 1.4 1998/09/04 14:34:23 scrappy Exp $";*/
-static void dopr();
+/*static char _id[] = "$Id: snprintf.c,v 1.5 1998/09/10 04:11:52 vadim Exp $";*/
 static char *end;
 static int	SnprfOverflow;
 
-/* VARARGS3 */
+int snprintf(char *str, size_t count, const char *fmt, ...);
+int vsnprintf(char *str, size_t count, const char *fmt, ...);
+static void dopr (char *buffer, const char *format, ... );
+
 int
-# ifdef __STDC__
 snprintf(char *str, size_t count, const char *fmt, ...)
-# else
-snprintf(str, count, fmt, va_alist)
-	char *str;
-	size_t count;
-	const char *fmt;
-	va_dcl
-#endif
 {
 	int len;
 	VA_LOCAL_DECL
 
 	VA_START(fmt);
-	len = vsnprintf(str, count, fmt, ap);
+	len = vsnprintf(str, count, fmt, args);
 	VA_END;
 	return len;
 }
 
 
-# ifndef luna2
 int
-vsnprintf(str, count, fmt, args)
-	char *str;
-	size_t count;
-	const char *fmt;
-	va_list args;
+vsnprintf(char *str, size_t count, const char *fmt, ...)
 {
+	VA_LOCAL_DECL
+
+	VA_START(fmt);
 	str[0] = 0;
 	end = str + count - 1;
 	SnprfOverflow = 0;
-	dopr( str, fmt, args );
+	dopr( str, fmt, args);
 	if (count > 0)
 		end[0] = 0;
-	if (SnprfOverflow && tTd(57, 2))
-		printf("\nvsnprintf overflow, len = %d, str = %s",
-			count, shortenstring(str, 203));
+	if (SnprfOverflow)
+		elog(NOTICE, "vsnprintf overflow, len = %d, str = %s",
+			count, str);
+	VA_END;
 	return strlen(str);
 }
 
@@ -117,20 +119,20 @@ static char *output;
 static void dopr_outch __P(( int c ));
 
 static void
-dopr( buffer, format, args )
-       char *buffer;
-       const char *format;
-       va_list args;
+dopr (char *buffer, const char *format, ... )
 {
-       int ch;
-       long value;
-       int longflag  = 0;
-       int pointflag = 0;
-       int maxwidth  = 0;
-       char *strvalue;
-       int ljust;
-       int len;
-       int zpad;
+	int ch;
+	long value;
+	int longflag  = 0;
+	int pointflag = 0;
+	int maxwidth  = 0;
+	char *strvalue;
+	int ljust;
+	int len;
+	int zpad;
+	VA_LOCAL_DECL
+
+	VA_START(format);
 
        output = buffer;
        while( (ch = *format++) ){
@@ -143,6 +145,7 @@ dopr( buffer, format, args )
                        switch( ch ){
                        case 0:
                                dostr( "**end of format**" , 0);
+							   VA_END;
                                return;
                        case '-': ljust = 1; goto nextch;
                        case '0': /* set zero padding if len not set */
@@ -222,6 +225,7 @@ dopr( buffer, format, args )
                }
        }
        *output = 0;
+	   VA_END;
 }
 
 static void
@@ -340,4 +344,4 @@ dopr_outch( c )
 		SnprfOverflow++;
 }
 
-# endif /* !luna2 */
+