Recursive callback for update