Network coding has been applied successfully in peer-to-peer (P2P) systems to shorten the distribution time. Pieces of data, i.e. blocks, are combined, i.e. encoded, by the sending peers before forwarding to other peers. Even though requiring all peers to encode might achieve shortest distribution time, it is not necessarily optimal in terms of computational resource consumption. Short finish time, in many cases, can be achieved with just a subset of carefully chosen peers. P2P systems, in addition, tend to be heterogeneous in which some peers, such as hand-held devices, would not have the required capacity to encode. We therefore envision a P2P system where some peers encode to improve distribution time and other peers, due to limited computational capacity or due to some system-wide optimization, do not encode. Such a system gives rise to a block-selection problem which has never happened in both pure non-coding and full network coding-enabled P2P systems. We identify the problem and fix the current block-selection algorithm to address it. Simulation evaluation confirms the effectiveness of our proposed algorithm without which the system performance degrades considerably.