We study the performance problems that exist when loss responsive flows traverse wireless links, where losses are often unrelated to congestion. We present a novel concept -- flow-adaptive wireless links -- which provides service differentiation by tailoring link layer error control to the QoS requirements of each flow sharing the link. Flow-adaptive links emphasize local error control as a necessary complement to end-to-end error control, and are independent of transport (or higher) layer protocol semantics. The key idea is that applications use the IP layer as a level of indirection through which QoS requirements are communicated to each link along the path, on a per flow basis. We then demonstrate how this improves performance for the particular class of reliable loss responsive flows. We prove in general that a well engineered, fully reliable wireless link does not interfere with TCP's end-to-end error recovery. Moreover, we propose a new error recovery algorithm (TCP-Eifel) that can optionally be implemented in TCP to further improve performance. By eliminating the retransmission ambiguity problem the algorithm detects spurious timeouts, and uses these as an implicit cross-layer signal to prevent unnecessary retransmissions in TCP.