diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index 82fb100b6f0..edeb00ef659 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -2791,7 +2791,11 @@ send_by_ref: NEXT_OPCODE(); case ZEND_UNSET_VAR: { - zval tmp, *variable = get_zval_ptr(&EX(opline)->op1, EX(Ts), &EG(free_op1), BP_VAR_R); + zval tmp, *variable; + HashTable *target_symbol_table; + + variable = get_zval_ptr(&EX(opline)->op1, EX(Ts), &EG(free_op1), BP_VAR_R); + target_symbol_table = zend_get_target_symbol_table(EX(opline), EX(Ts), BP_VAR_IS TSRMLS_CC); if (variable->type != IS_STRING) { tmp = *variable; @@ -2800,7 +2804,7 @@ send_by_ref: variable = &tmp; } - zend_hash_del(EG(active_symbol_table), variable->value.str.val, variable->value.str.len+1); + zend_hash_del(target_symbol_table, variable->value.str.val, variable->value.str.len+1); if (variable == &tmp) { zval_dtor(&tmp);