Internet-based applications that require low latency are becoming more common. Such applications typically generate traffic consisting of short, or bursty, TCP flows. As TCP, instead, is designed to optimize the throughput of long bulk flows there is an apparent mismatch. To overcome this, a lot of research has recently focused on optimizing TCP for short flows as well. In this paper, we identify a performance problem for short flows caused by the metric caching conducted by the TCP control block interdependence mechanisms. Using this metric caching, a single packet loss can potentially ruin the performance for all future flows to the same destination by making them start in congestion avoidance instead of slow-start. To solve this, we propose an enhanced selective caching mechanism for short flows. To illustrate the usefulness of our approach, we implement it in both Linux and FreeBSD and experimentally evaluate it in a real test-bed. The experiments show that the selective caching approach is able to reduce the average transmission time of short flows by up to 40%.