diff --git a/src/backend/utils/adt/datetime.c b/src/backend/utils/adt/datetime.c
index 994ab9fae084151a34d3253fc9aee9dca09c9d5e..625ac11bccbc69149fc30f2a1fe7317076deffcb 100644
--- a/src/backend/utils/adt/datetime.c
+++ b/src/backend/utils/adt/datetime.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/datetime.c,v 1.100 2003/02/19 03:48:10 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/datetime.c,v 1.101 2003/02/20 05:24:55 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1253,9 +1253,7 @@ DecodeDateTime(char **field, int *ftype, int nf,
 							case DTK_NOW:
 								tmask = (DTK_DATE_M | DTK_TIME_M | DTK_M(TZ));
 								*dtype = DTK_DATE;
-								GetCurrentTimeUsec(tm, fsec);
-								if (tzp != NULL)
-									*tzp = CTimeZone;
+								GetCurrentTimeUsec(tm, fsec, tzp);
 								break;
 
 							case DTK_YESTERDAY:
@@ -1969,7 +1967,7 @@ DecodeTimeOnly(char **field, int *ftype, int nf,
 							case DTK_NOW:
 								tmask = DTK_TIME_M;
 								*dtype = DTK_TIME;
-								GetCurrentTimeUsec(tm, fsec);
+								GetCurrentTimeUsec(tm, fsec, NULL);
 								break;
 
 							case DTK_ZULU:
diff --git a/src/backend/utils/adt/nabstime.c b/src/backend/utils/adt/nabstime.c
index 853cd014852d3692076360cc7ba56a8a25128d47..e6fa5a21fc053f998eb9fbcca92d49c59cd417cc 100644
--- a/src/backend/utils/adt/nabstime.c
+++ b/src/backend/utils/adt/nabstime.c
@@ -9,7 +9,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/nabstime.c,v 1.102 2002/12/12 19:16:55 tgl Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/nabstime.c,v 1.103 2003/02/20 05:24:55 tgl Exp $
  *
  * NOTES
  *
@@ -243,25 +243,24 @@ GetCurrentDateTime(struct tm * tm)
 	int			tz;
 
 	abstime2tm(GetCurrentTransactionStartTime(), &tz, tm, NULL);
-
-	return;
 }	/* GetCurrentDateTime() */
 
 
 void
-GetCurrentTimeUsec(struct tm * tm, fsec_t *fsec)
+GetCurrentTimeUsec(struct tm * tm, fsec_t *fsec, int *tzp)
 {
 	int			tz;
 	int			usec;
 
 	abstime2tm(GetCurrentTransactionStartTimeUsec(&usec), &tz, tm, NULL);
+	/* Note: don't pass NULL tzp directly to abstime2tm */
+	if (tzp != NULL)
+		*tzp = tz;
 #ifdef HAVE_INT64_TIMESTAMP
 	*fsec = usec;
 #else
 	*fsec = usec * 1.0e-6;
 #endif
-
-	return;
 }	/* GetCurrentTimeUsec() */
 
 
diff --git a/src/include/utils/datetime.h b/src/include/utils/datetime.h
index 251691325a571a52793c4dfb559a354e1eba5bdf..39905ebb15ec9cf3f37d0a694bfe72f846cccc88 100644
--- a/src/include/utils/datetime.h
+++ b/src/include/utils/datetime.h
@@ -9,7 +9,7 @@
  * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: datetime.h,v 1.35 2003/02/19 03:48:10 momjian Exp $
+ * $Id: datetime.h,v 1.36 2003/02/20 05:24:55 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -261,7 +261,7 @@ extern int	day_tab[2][13];
 
 
 extern void GetCurrentDateTime(struct tm * tm);
-extern void GetCurrentTimeUsec(struct tm * tm, fsec_t *fsec);
+extern void GetCurrentTimeUsec(struct tm * tm, fsec_t *fsec, int *tzp);
 extern void j2date(int jd, int *year, int *month, int *day);
 extern int	date2j(int year, int month, int day);