fix bug: recursion when the argument is replace by the out variable