Most of the recent research on TCP over heterogeneous networks has concentrated on differentiating between packet drops caused by link congestion versus drops caused by link errors. Handling the two types of packet drop differently avoids significant throughput degradations caused by frequent TCP window shut downs due to non-congestive drops. However, TCP also exhibits inherent unfairness for connections with long round-trip times and connections that traverse multiple congested routers. In heterogeneous networks, the difference in bit error rates between wireless and wired links aggravates the situation even more. In this paper, we propose a new TCP bandwidth allocation (NTBA) algorithm to solve these problems. The primary contribution is a wireless access node algorithm with a simple new shadow price scheme provided by the network node. The advantage of our algorithm is that it simplifies the TCP sender-side implementation and keeps the receiver-side protocol stack unchanged. We propose to apply wireless explicit congestion notification (WECN) to decouple congestion control from loss recovery in wireless networks. Simulation results show that not only can the combined NTBA/WECN mechanism improve TCP fairness, but it can also maintain very good throughput performance in the presence of wireless channel losses.