--- src/pl/plpgsql/src/pl_comp.c.orig	Wed Oct  4 03:30:13 2006
+++ src/pl/plpgsql/src/pl_comp.c	Thu Feb  1 14:59:07 2007
@@ -361,7 +361,8 @@
 				/* Disallow pseudotype argument */
 				/* (note we already replaced ANYARRAY/ANYELEMENT) */
 				/* (build_variable would do this, but wrong message) */
-				if (argdtype->ttype != PLPGSQL_TTYPE_SCALAR &&
+				if (argdtype->ttype != PLPGSQL_TTYPE_BASE &&
+					argdtype->ttype != PLPGSQL_TTYPE_DOMAIN &&
 					argdtype->ttype != PLPGSQL_TTYPE_ROW)
 					ereport(ERROR,
 							(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
@@ -1455,7 +1456,8 @@
 
 	switch (dtype->ttype)
 	{
-		case PLPGSQL_TTYPE_SCALAR:
+		case PLPGSQL_TTYPE_BASE:
+		case PLPGSQL_TTYPE_DOMAIN:
 			{
 				/* Ordinary scalar datatype */
 				PLpgSQL_var *var;
@@ -1744,8 +1746,10 @@
 	switch (typeStruct->typtype)
 	{
 		case 'b':				/* base type */
+			typ->ttype = PLPGSQL_TTYPE_BASE;
+			break;
 		case 'd':				/* domain */
-			typ->ttype = PLPGSQL_TTYPE_SCALAR;
+			typ->ttype = PLPGSQL_TTYPE_DOMAIN;
 			break;
 		case 'c':				/* composite, ie, rowtype */
 			Assert(OidIsValid(typeStruct->typrelid));
