Wireless local area networks, in particular those based in the IEEE 802.11 standard, are becoming increasingly prevalent to deliver Internet access. One of the features these networks introduce is the use of multiple transmission rates in the physical layer; in this regard, a crucial performance issue is how this capability interacts with higher layer protocols such as TCP to determine resource allocation among competing users. In this paper, we use the Network Utility Maximization framework to characterize the cross-layer interaction between TCP and an underlying MAC layer with multirate capabilities; the result, for current wireless networks, shows a significant bias against users with high modulation rates, to the point of overriding the high-speed feature. Based on this recognition, we propose an alternative resource allocation that overcomes this bias, and simple mechanisms to impose these more efficient equilibria in single cell scenarios and wireless access systems. We implement these proposals at the packet level in ns2, and present simulations of these mechanisms in action in concrete IEEE 802.11 networks.