diff --git a/src/backend/utils/adt/datetime.c b/src/backend/utils/adt/datetime.c
new file mode 100644
index 3d320cc..a935d98
*** a/src/backend/utils/adt/datetime.c
--- b/src/backend/utils/adt/datetime.c
*************** DecodeDateTime(char **field, int *ftype,
*** 942,947 ****
--- 942,957 ----
  				break;
  
  			case DTK_TIME:
+ 				/*
+ 				 * This might be an ISO time following a "t" field.
+ 				 */
+ 				if (ptype != 0)
+ 				{
+ 					/* Sanity check; should not fail this test */
+ 					if (ptype != DTK_TIME)
+ 						return DTERR_BAD_FORMAT;
+ 					ptype = 0;
+ 				}
  				dterr = DecodeTime(field[i], fmask, INTERVAL_FULL_RANGE,
  								   &tmask, tm, fsec);
  				if (dterr)
