--- src/pl/plpgsql/src/pl_exec.c.orig	Wed Oct  4 03:30:13 2006
+++ src/pl/plpgsql/src/pl_exec.c	Thu Feb  1 20:05:01 2007
@@ -844,6 +844,11 @@
 						{
 							var->value = (Datum) 0;
 							var->isnull = true;
+							if(!var->datatype->typinput.fn_strict)
+							{
+								exec_assign_value(estate, (PLpgSQL_datum *) var,
+									0, UNKNOWNOID, &(var->isnull));
+							}
 							if (var->notnull)
 								ereport(ERROR,
 									(errcode(ERRCODE_NULL_VALUE_NOT_ALLOWED),
