Applications that use parallel TCP streams to increase throughput must multiplex and demultiplex data blocks over a set of TCP streams transmitting on one or more network paths. When applications use the obvious round robin scheduling algorithm for multiplexing data blocks, differences in transmission rate between individual TCP streams can lead to significant data block reordering. This forces the demultiplexing receiver to buffer out-of-order data blocks, consuming memory and potentially causing the receiving application to stall. This paper describes a new adaptive weighted scheduling approach for multiplexing data blocks over a set of parallel TCP streams. Our new scheduling approach, compared with the scheduling approached used by GridFTP, reduces reordering of data blocks between individual TCP streams, maintains the aggregate throughput gains of parallel TCP, consumes less receiver memory for buffering out-of-order packets, and delivers smoother application goodput. We demonstrate the improved characteristics of our new scheduling approach using data transmission experiments over real and emulated wide-area networks.