Reliable broadcast is an important primitive in wireless mesh networks (WMNs) for applications such as software upgrade, video downloading, etc. However, due to the lossy nature of wireless link, it is not trivial to achieve the reliability and efficiency at the same time. In this paper, we put forward R-Code, a reliable and efficient broadcast protocol based on intra-flow network coding. The key idea is to construct a minimum spanning tree as a backbone whose link weight is based on ETX metric. The broadcast overhead and delay are simultaneously reduced by enabling each node to be covered by the parent node in the tree which promise its reliable reception of the whole file. Opportunistic overhearing is utilized to further reduce the number of transmissions. Extensive simulation results show that R-Code always achieves 100% packet delivery ratio (PDR), while introducing less broadcast overhead and much shorter delay than AdapCode.