In this paper we consider TCP based applications that use bandwidth guarantees, but can also benefit from any additional best-effort service offered by the network. We show that default TCP cannot offer such applications the aggregate throughput offered by the two services. We propose an adaptation of TCP called GTCP that uses changes to TCP's congestion control mechanisms to provide the optimal aggregate throughput. GTCP does not require any additional implementation overheads, and does not change the TCP receiver. Through simulations we show that GTCP achieves significantly better performance than default TCP in the target environment.