summaryrefslogtreecommitdiff
path: root/Mailman/MailList.py
diff options
context:
space:
mode:
Diffstat (limited to 'Mailman/MailList.py')
-rw-r--r--Mailman/MailList.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/Mailman/MailList.py b/Mailman/MailList.py
index 8d0e11c51..0e15511e5 100644
--- a/Mailman/MailList.py
+++ b/Mailman/MailList.py
@@ -996,7 +996,12 @@ class MailList(HTMLFormatter, Deliverer, ListAdmin,
def ApprovedChangeMemberAddress(self, oldaddr, newaddr, globally):
# Change the membership for the current list first. We don't lock and
# save ourself since we assume that the list is already locked.
- self.changeMemberAddress(oldaddr, newaddr)
+ if self.isMember(newaddr):
+ # Just delete the old address
+ if self.isMember(oldaddr):
+ self.ApprovedDeleteMember(oldaddr, admin_notif=1, userack=1)
+ else:
+ self.changeMemberAddress(oldaddr, newaddr)
# If globally is true, then we also include every list for which
# oldaddr is a member.
if not globally: