Opportunistic Routing (OR) has been proposed to improve the efficiency of unicast protocols in wireless networks. In OR, in contrast to traditional routing, instead of preselecting a single specific node to be the next-hop forwarder, an ordered set of nodes (referred to as candidates) is selected as the next-hop potential forwarders. In this paper, we investigate how OR can be used to improve multicast delivery. We propose a new multicast routing protocol based on opportunistic routing for wireless mesh networks, named Multicast Opportunistic Routing Protocol (MORP). MORP opportunistically employs a set of forwarders to send a packet toward all destinations. Each forwarder is responsible for sending the packet to a subset of destinations. Based on the candidates that successfully receive the packet in each transmission, MORP builds a tree on the fly. We compare our proposal with two well known ODMRP and ADMR multicast protocols. Our results demonstrate that MORP outperforms ODMRP and ADMR, reducing the number of data transmissions and increasing the delivery ratio.