In this paper we consider practical dissemination algorithms exploiting network coding for data broadcasting in ad hoc wireless networks. For an efcient design, we analyze issues related to the use of network coding in realistic network scenarios. In detail, we quantify the impact of random access schemes, as used by IEEE 802.11, on the performance of network coding. In such scenarios, deadlock situations may occur where the delivery process stops and some of the nodes never gather the required packets. To tackle this problem, we propose a proactive mechanism (called proactive network coding) which adapts its transmission schedule according to the decoding status of neighboring nodes. This scheme can detect when nodes need additional packets in order to decode and acts accordingly. We nally investigate the behavior of network coding schemes in multi-rate environments, where we propose a distributed heuristic approach for the selection of data rates.