This paper investigates the problem of how to improve TCP performance in multi-rate Ad-hoc networks with congested links. To improve network performance, different rate adaptation algorithms, such as Automatic Rate Fallback (ARF) and Receiver-Based AutoRate (RBAR), have been proposed to adapt the data rate according to the current channel quality. Opportunistic Auto Rate (OAR) protocol is an optimisation for any existing rate adaptation algorithm which leads to a significant performance gain by providing temporal fairness. We analyze the reasons for the high performance gain obtained using OAR, and show that the OAR protocol does not work well for TCP communications in Ad-hoc networks where nodes use different data rates to communicate with each other (heterogeneous). Based on these analysis, we propose a Congestion Reactive Opportunistic Auto Rate (CROAR) protocol, which is a new rate adaption enhancement tailored to improve TCP performance in heterogeneous multi-hop Ad-hoc networks...