diff --git a/britney2/excuse.py b/britney2/excuse.py
index 81269d6..7e6b366 100644
--- a/britney2/excuse.py
+++ b/britney2/excuse.py
@@ -412,11 +412,15 @@ class Excuse(object):
info = "Impossible %s: %s -> %s" % (d.deptype, self.uvname, desc)
else:
duv = excuses[dep].uvname
- if d.valid:
- info = "%s: %s %s" % (d.deptype, self.uvname, duv, duv)
- else:
+ verdict = excuses[dep].policy_verdict
+ if not d.valid or verdict in (PolicyVerdict.REJECTED_NEEDS_APPROVAL,
+ PolicyVerdict.REJECTED_CANNOT_DETERMINE_IF_PERMANENT,
+ PolicyVerdict.REJECTED_PERMANENTLY):
info = "%s: %s %s (not considered)" % (d.deptype, self.uvname, duv, duv)
- dep_issues[d.verdict].add("Invalidated by %s" % d.deptype.get_description())
+ if not d.valid:
+ dep_issues[d.verdict].add("Invalidated by %s" % d.deptype.get_description())
+ else:
+ info = "%s: %s %s" % (d.deptype, self.uvname, duv, duv)
dep_issues[d.verdict].add(info)
seen = set()
diff --git a/britney2/utils.py b/britney2/utils.py
index afb07dd..b48426e 100644
--- a/britney2/utils.py
+++ b/britney2/utils.py
@@ -728,6 +728,7 @@ def invalidate_excuses(excuses, valid, invalid, invalidated):
exc = excuses[x]
# if the item is valid and it is not marked as `forced', then we
# invalidate this specfic dependency
+
if x in valid and not exc.forced:
# mark this specific dependency as invalid
still_valid = exc.invalidate_dependency(ename, rdep_verdict)