Index: pym/portage/sets/libs.py =================================================================== --- pym/portage/sets/libs.py (revision 11831) +++ pym/portage/sets/libs.py (revision 11832) @@ -27,7 +27,8 @@ reg = self.dbapi.plib_registry consumers = set() if reg: - for libs in reg.getPreservedLibs().values(): + plib_dict = reg.getPreservedLibs() + for libs in plib_dict.itervalues(): for lib in libs: if self.debug: print lib @@ -35,6 +36,10 @@ print " ", x print "-"*40 consumers.update(self.dbapi.linkmap.findConsumers(lib)) + # Don't rebuild packages just because they contain preserved + # libs that happen to be consumers of other preserved libs. + for libs in plib_dict.itervalues(): + consumers.difference_update(libs) else: return if not consumers: