diff --git a/uffd/selfservice/views.py b/uffd/selfservice/views.py
index 739801780db6e28e512d801238f0953fe4107e63..1524fe9892e8f5bee843353871a6751ab3be2716 100644
--- a/uffd/selfservice/views.py
+++ b/uffd/selfservice/views.py
@@ -110,7 +110,8 @@ def token_mail(token):
 def send_mail_verification(loginname, newmail):
 	session = db.session
 	expired_tokens = MailToken.query.filter(MailToken.created < (datetime.datetime.now() - datetime.timedelta(days=2))).all()
-	for i in expired_tokens:
+	duplicate_tokens = MailToken.query.filter(MailToken.loginname == loginname).all()
+	for i in expired_tokens + duplicate_tokens:
 		session.delete(i)
 	token = MailToken()
 	token.loginname = loginname
@@ -128,7 +129,8 @@ def send_mail_verification(loginname, newmail):
 def send_passwordreset(loginname):
 	session = db.session
 	expired_tokens = PasswordToken.query.filter(PasswordToken.created < (datetime.datetime.now() - datetime.timedelta(days=2))).all()
-	for i in expired_tokens:
+	duplicate_tokens = PasswordToken.query.filter(PasswordToken.loginname == loginname).all()
+	for i in expired_tokens + duplicate_tokens:
 		session.delete(i)
 	token = PasswordToken()
 	token.loginname = loginname