Index: Zend/zend_compile.c =================================================================== RCS file: /repository/ZendEngine2/zend_compile.c,v retrieving revision 1.824 diff -u -p -r1.824 zend_compile.c --- Zend/zend_compile.c 12 May 2008 09:09:27 -0000 1.824 +++ Zend/zend_compile.c 23 May 2008 17:21:36 -0000 @@ -4102,10 +4102,18 @@ void zend_do_shell_exec(znode *result, z opline->opcode = ZEND_DO_FCALL; opline->result.u.var = get_temporary_variable(CG(active_op_array)); opline->result.op_type = IS_VAR; - Z_STRVAL(opline->op1.u.constant) = estrndup("shell_exec", sizeof("shell_exec")-1); - Z_STRLEN(opline->op1.u.constant) = sizeof("shell_exec")-1; + + if (UG(unicode)) { + Z_USTRVAL(opline->op1.u.constant) = USTR_MAKE("shell_exec"); + Z_USTRLEN(opline->op1.u.constant) = sizeof("shell_exec")-1; + Z_TYPE(opline->op1.u.constant) = IS_UNICODE; + } else { + Z_STRVAL(opline->op1.u.constant) = estrndup("shell_exec", sizeof("shell_exec")-1); + Z_STRLEN(opline->op1.u.constant) = sizeof("shell_exec")-1; + Z_TYPE(opline->op1.u.constant) = IS_STRING; + } + INIT_PZVAL(&opline->op1.u.constant); - Z_TYPE(opline->op1.u.constant) = IS_STRING; opline->op1.op_type = IS_CONST; opline->extended_value = 1; SET_UNUSED(opline->op2);