Symmetric exchanges has been used for peer-to-peer resource allocation systems to maintain fairness among the number of resources that each peer contributes to the network. The problem of these systems is that they do not take into account resource’s quality in their fairness measure. Resource quality is an important factor to obtain fair allocations. When this factor is not kept in mind, high quality peers can obtain low quality resources, bringing the system to an unfair state. In this work we present a generic resource allocation system that improves the system fairness in the presence of quality heterogeneity. With low network overhead, our system provide near complete allocation while maintaining network stability and fairness.