diff --git a/src/backend/catalog/heap.c b/src/backend/catalog/heap.c
index 32150d926fbf037d6b07d68bef1261672d4cbeae..1d6708a076d487867ddb6a0c6a66e2fccb77b773 100644
--- a/src/backend/catalog/heap.c
+++ b/src/backend/catalog/heap.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.56 1998/08/06 05:12:19 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.57 1998/08/17 16:03:31 thomas Exp $
  *
  * INTERFACE ROUTINES
  *		heap_create()			- Create an uncataloged heap relation
@@ -47,6 +47,7 @@
 #include "parser/parse_expr.h"
 #include "parser/parse_node.h"
 #include "parser/parse_type.h"
+#include "parser/parse_coerce.h"
 #include "rewrite/rewriteRemove.h"
 #include "storage/bufmgr.h"
 #include "storage/lmgr.h"
@@ -1519,7 +1520,8 @@ start:;
 			goto start;
 		}
 	}
-	else if (exprType(expr) != atp->atttypid)
+	else if ((exprType(expr) != atp->atttypid)
+	 && !IS_BINARY_COMPATIBLE(exprType(expr), atp->atttypid))
 		elog(ERROR, "DEFAULT: type mismatched");
 
 	adbin = nodeToString(expr);