summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pym/_emerge/actions.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/pym/_emerge/actions.py b/pym/_emerge/actions.py
index 9e2c88fe0..bc013483f 100644
--- a/pym/_emerge/actions.py
+++ b/pym/_emerge/actions.py
@@ -1182,11 +1182,13 @@ def action_deselect(settings, trees, opts, atoms):
for atom in world_set:
for arg_atom in expanded_atoms:
if arg_atom.startswith(SETPREFIX):
- if arg_atom == atom:
+ if atom.startswith(SETPREFIX) and \
+ arg_atom == atom:
discard_atoms.add(atom)
break
else:
- if arg_atom.intersects(atom) and \
+ if not atom.startswith(SETPREFIX) and \
+ arg_atom.intersects(atom) and \
not (arg_atom.slot and not atom.slot):
discard_atoms.add(atom)
break