Index: src/backend/utils/adt/timestamp.c
===================================================================
RCS file: /cvsroot/pgsql/src/backend/utils/adt/timestamp.c,v
retrieving revision 1.128
diff -c -c -r1.128 timestamp.c
*** src/backend/utils/adt/timestamp.c	30 Jun 2005 03:48:58 -0000	1.128
--- src/backend/utils/adt/timestamp.c	4 Jul 2005 14:02:46 -0000
***************
*** 2793,2801 ****
--- 2793,2804 ----
  				/*
  				 *	If it is week 52/53 and the month is January,
  				 *	then the week must belong to the previous year.
+ 				 *	Also, some December dates belong to the next year.
  				 */
  				if (woy >= 52 && tm->tm_mon == 1)
  					--tm->tm_year;
+ 				if (woy <= 1 && tm->tm_mon == 12)
+ 					++tm->tm_year;
  				isoweek2date(woy, &(tm->tm_year), &(tm->tm_mon), &(tm->tm_mday));
  				tm->tm_hour = 0;
  				tm->tm_min = 0;
***************
*** 2924,2932 ****
--- 2927,2938 ----
  				/*
  				 *	If it is week 52/53 and the month is January,
  				 *	then the week must belong to the previous year.
+ 				 *	Also, some December dates belong to the next year.
  				 */
  				if (woy >= 52 && tm->tm_mon == 1)
  					--tm->tm_year;
+ 				if (woy <= 1 && tm->tm_mon == 12)
+ 					++tm->tm_year;
  				isoweek2date(woy, &(tm->tm_year), &(tm->tm_mon), &(tm->tm_mday));
  				tm->tm_hour = 0;
  				tm->tm_min = 0;
