summaryrefslogtreecommitdiff
path: root/alot/mail/envelope.py
diff options
context:
space:
mode:
Diffstat (limited to 'alot/mail/envelope.py')
-rw-r--r--alot/mail/envelope.py19
1 files changed, 15 insertions, 4 deletions
diff --git a/alot/mail/envelope.py b/alot/mail/envelope.py
index 655b5fe6..7f07eba4 100644
--- a/alot/mail/envelope.py
+++ b/alot/mail/envelope.py
@@ -59,10 +59,21 @@ class _EnvelopeHeaders:
return self._vals[idx][0]
def __delitem__(self, key):
- idx = self._key_to_idx(key)
- del self._keys_lower[idx]
- del self._keys[idx]
- del self._vals[idx]
+ deleted = False
+
+ while True:
+ try:
+ idx = self._key_to_idx(key)
+ except KeyError:
+ if deleted:
+ return
+ raise
+
+ del self._keys_lower[idx]
+ del self._keys[idx]
+ del self._vals[idx]
+
+ deleted = True
def __contains__(self, key):
return key.lower() in self._keys_lower