Index: src/pl/plpython/plpython.c
===================================================================
RCS file: /projects/cvsroot/pgsql/src/pl/plpython/plpython.c,v
retrieving revision 1.90.2.2
diff -p -u -c -r1.90.2.2 plpython.c
*** src/pl/plpython/plpython.c	15 Oct 2007 15:53:12 -0000	1.90.2.2
--- src/pl/plpython/plpython.c	22 Nov 2007 11:57:14 -0000
*************** PLy_vprintf(const char *fmt, va_list ap)
*** 2990,3005 ****
  	blen = strlen(fmt) * 2;
  	if (blen < 256)
  		blen = 256;
! 	buf = PLy_malloc(blen * sizeof(char));
  
  	while (1)
  	{
! 		bchar = vsnprintf(buf, blen, fmt, ap);
  		if (bchar > 0 && bchar < blen)
  			return buf;
  		if (tries-- <= 0)
  			break;
! 		if (blen > 0)
  			blen = bchar + 1;
  		else
  			blen *= 2;
--- 2990,3009 ----
  	blen = strlen(fmt) * 2;
  	if (blen < 256)
  		blen = 256;
! 	buf = PLy_malloc(blen);
  
  	while (1)
  	{
! 		va_list ap2;
! 		va_copy(ap2, ap);
! 		bchar = vsnprintf(buf, blen, fmt, ap2);
! 		va_end(ap2);
! 
  		if (bchar > 0 && bchar < blen)
  			return buf;
  		if (tries-- <= 0)
  			break;
! 		if (bchar > 0)
  			blen = bchar + 1;
  		else
  			blen *= 2;
