diff --git a/src/backend/utils/adt/datetime.c b/src/backend/utils/adt/datetime.c
index cf8009df91..e6f4689a59 100644
--- a/src/backend/utils/adt/datetime.c
+++ b/src/backend/utils/adt/datetime.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $PostgreSQL: pgsql/src/backend/utils/adt/datetime.c,v 1.206 2009/06/01 16:55:11 tgl Exp $
+ *	  $PostgreSQL: pgsql/src/backend/utils/adt/datetime.c,v 1.207 2009/06/10 05:05:03 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -2917,17 +2917,17 @@ DecodeInterval(char **field, int *ftype, int nf, int range,
 							break;
 						case INTERVAL_MASK(HOUR):
 						case INTERVAL_MASK(DAY) | INTERVAL_MASK(HOUR):
-						case INTERVAL_MASK(DAY) | INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE):
-						case INTERVAL_MASK(DAY) | INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE) | INTERVAL_MASK(SECOND):
 							type = DTK_HOUR;
 							break;
 						case INTERVAL_MASK(MINUTE):
 						case INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE):
+						case INTERVAL_MASK(DAY) | INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE):
 							type = DTK_MINUTE;
 							break;
 						case INTERVAL_MASK(SECOND):
-						case INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE) | INTERVAL_MASK(SECOND):
 						case INTERVAL_MASK(MINUTE) | INTERVAL_MASK(SECOND):
+						case INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE) | INTERVAL_MASK(SECOND):
+						case INTERVAL_MASK(DAY) | INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE) | INTERVAL_MASK(SECOND):
 							type = DTK_SECOND;
 							break;
 						default:
diff --git a/src/test/regress/expected/interval.out b/src/test/regress/expected/interval.out
index cf378867c7..a6f50b4622 100644
--- a/src/test/regress/expected/interval.out
+++ b/src/test/regress/expected/interval.out
@@ -466,11 +466,9 @@ SELECT interval '1 2:03:04' day to hour;
 (1 row)
 
 SELECT interval '1 2' day to minute;
-    interval    
-----------------
- 1 day 02:00:00
-(1 row)
-
+ERROR:  invalid input syntax for type interval: "1 2"
+LINE 1: SELECT interval '1 2' day to minute;
+                        ^
 SELECT interval '1 2:03' day to minute;
     interval    
 ----------------
@@ -484,11 +482,9 @@ SELECT interval '1 2:03:04' day to minute;
 (1 row)
 
 SELECT interval '1 2' day to second;
-    interval    
-----------------
- 1 day 02:00:00
-(1 row)
-
+ERROR:  invalid input syntax for type interval: "1 2"
+LINE 1: SELECT interval '1 2' day to second;
+                        ^
 SELECT interval '1 2:03' day to second;
     interval    
 ----------------
@@ -605,11 +601,9 @@ SELECT interval '1.234' second(2);
 (1 row)
 
 SELECT interval '1 2.345' day to second(2);
-    interval    
-----------------
- 1 day 02:20:42
-(1 row)
-
+ERROR:  invalid input syntax for type interval: "1 2.345"
+LINE 1: SELECT interval '1 2.345' day to second(2);
+                        ^
 SELECT interval '1 2:03' day to second(2);
     interval    
 ----------------