In this article, a new approach is presented to solve the double-track railway rescheduling problem, when an incident occurs into one of the block sections of the railway. The approach simultaneously considers three rescheduling policies: cancelling, delaying and reordering. To find the optimal conflict-free timetables compatible with the approach, a mathematical model and an exact three-phase solution method are proposed. The method is based on Branch-and-Bound (B&B) algorithm. The lower bound consists of two cost parts: the cost of deviation from the primary timetable and the cost of train cancellation. To generate an appropriate upper bound, the method exploits an innovative algorithm called "Local Left Shifting". A heuristic beam search technique is also developed for tackling the large-scale problems. An experimental analysis on two double-track railways of the Iranian network indicates that the proposed solution method provides the optimal solution in much shorter time, compared with the time taken to solve the mathematical model by CPLEX software. Based on the findings of this research, it is possible to optimally retrieve the primary timetable after incident occurrence during a pre-determined time horizon.