Wireless sensor networks consist of a number of small wireless sensor nodes which take measurements and transmit them over wireless links. As wireless sensors are resource constrained, the usage of energy and memory must be done wisely to increase the lifetime of nodes. It is also necessary to deliver data reliably to make any application more useful to the end user. A reliable and lightweight routing protocol for wireless sensor networks is presented in this paper. The protocol shows more than 90% savings in number of transmissions compared to the message flooding scheme when the same route is used to transmit data messages. This saving increases exponentially as the number of transmissions increases over a same route. The protocol occupies only 16% of total available RAM and 12% of total program memory in MICAz platform which makes it very lightweight to implement in wireless sensor networks. Its self healing capability to recover from livelock and deadlock enhances its reliability as a routing protocol in wireless sensor networks.