diff -urN php-4.3.1-orig/Zend/zend_execute.c php-4.3.1/Zend/zend_execute.c --- php-4.3.1-orig/Zend/zend_execute.c Mon Mar 31 14:01:54 2003 +++ php-4.3.1/Zend/zend_execute.c Fri May 23 15:48:40 2003 @@ -1551,7 +1551,14 @@ } if (!EX(object).ptr || EX(object).ptr->type != IS_OBJECT) { - zend_error(E_ERROR, "Call to a member function on a non-object"); + zend_error(E_WARNING, "Call to a member function on a non-object"); + zend_ptr_stack_n_pop(&EG(arg_types_stack), 3, &EX(ce), &EX(object).ptr, &EX(fbc)); + while (EX(opline)->opcode != ZEND_DO_FCALL_BY_NAME) EX(opline)++; /* jump past arguments */ + if (RETURN_VALUE_USED(EX(opline))) { /* return null */ + ALLOC_ZVAL(EX(Ts)[EX(opline)->result.u.var].var.ptr); + INIT_ZVAL(*EX(Ts)[EX(opline)->result.u.var].var.ptr); + } + NEXT_OPCODE(); /* jump past ZEND_DO_FCALL_BY_NAME */ } if (!EX(object).ptr->is_ref && EX(object).ptr->refcount > 1) { zend_error(E_ERROR, "Bug: Problem in method call");