In a mesh-based peer-to-peer live-streaming system, a data scheduler decides which segments and from where it should fetch to the local buffer of a peer. The scheduling strategy is critical when the local buffer is limited for caching segments, particularly for a storage-constrained Internet Protocol Television system such as a set-top box. The main objective is to deliver data to as many peers as possible in a timely manner, i.e., streaming data should be received before their playback deadlines. One popular approach used in existing systems is to let peers preferentially request data segments that are rarest and of the earliest playback deadlines among neighboring peers. However, it has been ignored that a fresh segment with a higher sequence identity but a later playback deadline may have a longer time to be shared with other peers. In this paper, we propose a novel data scheduling scheme, called ColorStream, which can achieve higher system throughput and shorter start-up delay. When deciding which segments to get, in addition to rarity and urgency, ColorStream also considers the freshness of segments because distributing fresher ones implies to be shared by more peers in the future. It categorizes the segments and peers by labeling them with colors and lets each peer request with preference the rare and urgent segments that have the same color as its own. This technique allows more fresh segments to be requested without abandoning rare and urgent segments and also balances the workload of data dissemination among peers. Simulations have been conducted to evaluate the performance of the proposed ColorStream scheme. The results show that, compared with existing schemes, ColorStream can greatly improve the performance under various conditions in terms of throughput and start-up delay.