diff --git a/src/backend/utils/adt/timestamp.c b/src/backend/utils/adt/timestamp.c
new file mode 100644
index 8593b6b..2adc178
*** a/src/backend/utils/adt/timestamp.c
--- b/src/backend/utils/adt/timestamp.c
*************** interval_trunc(PG_FUNCTION_ARGS)
*** 3710,3719 ****
  					break;
  
  				default:
! 					ereport(ERROR,
! 							(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
! 							 errmsg("interval units \"%s\" not supported",
! 									lowunits)));
  			}
  
  			if (tm2interval(tm, fsec, result) != 0)
--- 3710,3726 ----
  					break;
  
  				default:
! 					if (val == DTK_WEEK)
! 						ereport(ERROR,
! 								(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
! 								 errmsg("interval units \"%s\" not supported "
! 									"because months usually have fractional weeks",
! 										lowunits)));
! 					else
! 						ereport(ERROR,
! 								(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
! 								 errmsg("interval units \"%s\" not supported",
! 										lowunits)));
  			}
  
  			if (tm2interval(tm, fsec, result) != 0)
