Wireless mesh networks are emerging as a key technology for next generation wireless networking. Due to the fact that their standardization is still on the way, the currently routing protocols of wireless mesh networks basically continue to use the algorithms in ad hoc networks. However, experiments and applications show that the routing protocols in ad hoc networks are not appropriate for wireless mesh networks. On the basis of analyzing the flaws of AODV routing protocol, a novel routing protocol for wireless mesh networks, MODVWLS, is proposed to solve this problem. Weighted link state, which is composed of nodes available bandwidth, throughput and buffer saturation, is used as routing metric in MODVWLS. Each node periodically calculates the cost (weight) of transmission to its next hop, and the path with minimal accumulative weight from source to destination is finally used as preferred route. In order to utilize disengaged nodes sufficiently and balance network load dynamically, overload alarm mechanism is adopted to initiate new route discovering. Weight calculation, message formats, route discovering, and maintaining process are also introduced in detail. Finally, several simulations are conducted by ns-2, and the results show that MODVWLS is better than AODV on packet delivery fraction, end-to-end delay and normalized routing load, it is thus more appropriate for wireless mesh networks.