Index: src/backend/utils/adt/pg_locale.c
===================================================================
RCS file: /cvsroot/pgsql/src/backend/utils/adt/pg_locale.c,v
retrieving revision 1.55
diff -c -c -r1.55 pg_locale.c
*** src/backend/utils/adt/pg_locale.c	24 Apr 2010 22:54:56 -0000	1.55
--- src/backend/utils/adt/pg_locale.c	26 Apr 2010 13:30:03 -0000
***************
*** 627,633 ****
  		save_lc_time = pstrdup(save_lc_time);
  
  #ifdef WIN32
! 	/* See the WIN32 comment near the top of PGLC_localeconv() */
  	/* save user's value of ctype locale */
  	save_lc_ctype = setlocale(LC_CTYPE, NULL);
  	if (save_lc_ctype)
--- 627,641 ----
  		save_lc_time = pstrdup(save_lc_time);
  
  #ifdef WIN32
! 	/*
! 	 * On WIN32, there is no way to get locale-specific time values in a
! 	 * specified locale, like we do for monetary/numeric.  We can only get
! 	 * CP_ACP (see strftime_win32) or UTF16.  Therefore, we get UTF16 and
! 	 * convert it to the database locale.  However, wcsftime() internally
! 	 * uses LC_CTYPE, so we set it here.  See the WIN32 comment near the
! 	 * top of PGLC_localeconv().
! 	 */
! 
  	/* save user's value of ctype locale */
  	save_lc_ctype = setlocale(LC_CTYPE, NULL);
  	if (save_lc_ctype)
