Ad-hoc On-Demand Distance Vector Routing (AODV) is a famous routing protocol for mobile ad hoc networks. Routing path established with AODV remains unchanged during data transmission unless the link fails. Due to the mobile nature of nodes in an ad hoc network, the network topology changes frequently. As a result, some intermediate nodes of an earlier established path may later become redundant and results in packet routing through longer link. In addition, a path established at one time may later be broken due to some intermediate nodes of the path move out of the range. In this paper, we propose an ad hoc network routing protocol with both dynamic link shortening and broken avoidance features. Each node only needs to turn on its overhearing function and keeps minimal extra information. The simulation results show that the proposed protocol does improve the performance of the AODV protocol in terms of data delivery ratio, average delay time, and the network overhead.