diff --git a/bin/merge-users b/bin/merge-users
index 6a06e5bd466f42dbb18050425ecf280660426a3e..7b7b36f8384443d279b8b095d444488a6b992279 100755
--- a/bin/merge-users
+++ b/bin/merge-users
@@ -55,9 +55,10 @@ sess.flush()
 
 conn.execute(db.Log.__table__.update().where(db.Log.changed_by == suid).values(changed_by=duid))
 
-conn.execute(db.Participant.__table__.delete().where(db.Participant.user_id == suid))
+conn.execute(db.Participant.__table__.update().where(db.Participant.user_id == suid).values(user_id=duid))
 
-conn.execute(db.Participation.__table__.delete().where(and_(db.Participation.user_id == suid, db.Participation.contest_id == test_contest_id)))
+if test_contest:
+    conn.execute(db.Participation.__table__.delete().where(and_(db.Participation.user_id == suid, db.Participation.contest_id == test_contest_id)))
 
 conn.execute(db.Participation.__table__.update().where(db.Participation.user_id == suid).values(user_id=duid))