The widespread availability of the 802.11-based hardware has made it the premier choice of both researchers and practitioners for developing new wireless networks and applications. However, the ever increasing set of demands posed by these applications are stretching the 802.11 MAC protocol beyond its intended capabilities. For example, 802.11 provides no control over allocation of resources, and the default allocation policy is ill-suited for heterogeneous environments and multi-hop networks. In this paper, we take a first step towards addressing these problems by presenting the design and the implementation of an overlay MAC layer (OML), that works on top of the 802.11 MAC layer. OML uses loosely-synchronized clocks to divide the time in equal size slots, and employs a distributed algorithm to allocate these slots among competing nodes. We have implemented OML in both a simulator and a wireless test-bed using the Click modular router. Our evaluation shows that OML can provide better flexibility as well as improve the fairness, throughput and predictability of 802.11 networks.