diff --git a/src/backend/utils/adt/date.c b/src/backend/utils/adt/date.c
index 762f6e0fbebaeb7d6aae791df71fb22d47ff188b..f8693c753af9cdd63c8c1c4be8161f3b9c88090f 100644
--- a/src/backend/utils/adt/date.c
+++ b/src/backend/utils/adt/date.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/date.c,v 1.60 2001/10/04 14:49:57 tgl Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/date.c,v 1.61 2001/10/04 15:14:22 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -28,8 +28,7 @@
 #include "utils/timestamp.h"
 
 
-static void
-AdjustTimeForTypmod(TimeADT *time, int32 typmod);
+static void AdjustTimeForTypmod(TimeADT *time, int32 typmod);
 
 /*****************************************************************************
  *	 Date ADT
@@ -502,7 +501,10 @@ AdjustTimeForTypmod(TimeADT *time, int32 typmod)
 		static int32 TimeTypmod = 0;
 
 		if (typmod != TimeTypmod)
-			TimeScale = pow(10, typmod);
+		{
+			TimeScale = pow(10.0, typmod);
+			TimeTypmod = typmod;
+		}
 
 		*time = (rint(((double) *time)*TimeScale)/TimeScale);