Overlay multicast is an efficient and deployable approach for delivering multimedia content to a large number of receivers. A key problem in overlay multicast is how to deal with node failures and ungraceful leavings. When a nonleaf end host fails or leaves the multicast session, all downstream nodes will be affected. In this paper, we adopt the proactive approach, which pre-calculates a candidate node (called parent-to-be) for each node to connect to in case its current parent dies. The goal is to recover the multicast tree quickly so that the disruption of service to those affected nodes is minimized. We combine the local parent-to-be locating and global parent-to-be locating schemes together, in order to take advantage of less interference among affected nodes in the local scheme and the flexibility of the global scheme. The quality of the recovered tree is improved while the responsiveness of the proactive approach is maintained.