In multi-rate IEEE 802.11 wireless LAN, when multiple stations transmit frames at different data rates, the basic service set (BSS) suffers from "performance anomaly" problem. In this paper, to solve this issue, we propose a TCP rate control scheme for IEEE 802.11 DCF mode. In the proposed scheme, a TCP sender controls its maximum window size based on the throughput estimated at the TCP layer. The throughput estimation is based on the number of active stations and the channel occupancy time used by each station in the BSS, which are monitored at the MAC layer. The proposed scheme forms a cross layer approach involving both MAC and TCP layers. The performance of the proposed scheme over adaptive multi-rate IEEE 802.11 wireless LAN is evaluated and compared with that of standard TCP through several simulations. The simulation results show that the proposed scheme improves the aggregate throughput in the BSS and reduces packet drops at the TCP layer. The proposed scheme also exhibits fairness in terms of channel occupancy time among the competing stations.