This report describes the protocol design of TCP with Forward Error Correction (TCP-FEC). The performance of TCP can be significantly improved by generating and sending redundant segments in addition to the normal TCP data segments. Data losses in the network can be recovered from the redundant or the original data packets. Additionally by adding correcting codes to the TCP transmissions, both isolated and bursty losses can be handled. The advantage for the application is that the long retransmission times can be avoided if the repair can be done locally. The advantage for the network is two-fold, excessive retransmissions do not further congest the network and wireless losses can be repaired at the receiver. This technical report details TCP-FEC from a design, migration and protocol perspective in the highly heterogeneous wireless environments envisaged by the sixth framework Ambient Networks project\footnote{This work was supported by the EU Ambient Networks Project IST-2002-507134-AN}.