  	/* Pop the switch and foreach seperators */
  	zend_stack_del_top(&CG(switch_cond_stack));
  	zend_stack_del_top(&CG(foreach_copy_stack));
-@@ -1215,6 +1283,7 @@
+@@ -1215,9 +1283,10 @@
  	cur_arg_info->pass_by_reference = pass_by_reference;
  
  	if (class_type->op_type != IS_UNUSED) {
 +		MANGLE_CLASS_NAME(class_type);
  		cur_arg_info->class_name = class_type->u.constant.value.str.val;
  		cur_arg_info->class_name_len = class_type->u.constant.value.str.len;
- 		cur_arg_info->allow_null = 0;
+-		cur_arg_info->allow_null = 0;
++		cur_arg_info->allow_null = (initialization != NULL);
+ 	} else {
+ 		cur_arg_info->class_name = NULL;
+ 		cur_arg_info->class_name_len = 0;
 @@ -1347,6 +1416,7 @@
  				zval_dtor(&class_name->u.constant);
  				break;

retrieving revision 1.600
diff -u -r1.600 zend_compile.c
--- Zend/zend_compile.c	16 Oct 2004 23:17:58 -0000	1.600
+++ Zend/zend_compile.c	2 Nov 2004 14:01:08 -0000
@@ -125,7 +125,10 @@
 	zend_stack_init(&CG(foreach_copy_stack));
 	zend_stack_init(&CG(object_stack));

Index: Zend/zend_API.c
===================================================================
RCS file: /repository/ZendEngine2/zend_API.c,v
retrieving revision 1.269
diff -u -r1.269 zend_API.c
--- Zend/zend_API.c	2 Nov 2004 13:10:37 -0000	1.269
+++ Zend/zend_API.c	2 Nov 2004 22:37:24 -0000
@@ -1313,6 +1313,9 @@
 			internal_function->return_reference = ptr->arg_info[0].return_reference;
 		} else {
