--- /usr/lib/python2.7/site-packages/gentoolkit/eclean/search.py.orig 2013-06-01 17:12:58.619341697 +0200 +++ /usr/lib/python2.7/site-packages/gentoolkit/eclean/search.py 2013-06-01 17:57:21.384179193 +0200 @@ -557,15 +557,12 @@ clean_me[cpv].append(os.path.realpath(path)) # keep only obsolete ones if destructive: dbapi = var_dbapi - if package_names: - cp_all = dict.fromkeys(dbapi.cp_all()) - else: - cp_all = {} + cp_all = (dbapi.cp_all() if package_names else []) else: dbapi = port_dbapi - cp_all = {} + cp_all = [] for cpv in list(clean_me): if exclDictMatchCP(exclude,portage.cpv_getkey(cpv)): # exclusion because of the exclude file del clean_me[cpv] @@ -573,9 +570,9 @@ if dbapi.cpv_exists(cpv): # exclusion because pkg still exists (in porttree or vartree) del clean_me[cpv] continue - if portage.cpv_getkey(cpv) in cp_all: + if portage.cpv_getkey(cpv) in cp_all and port_dbapi.cpv_exists(cpv): # exlusion because of --package-names del clean_me[cpv] return clean_me