diff --git a/moodle/bulk-enrol.py b/moodle/bulk-enrol.py
index 877ed084d3defc614e2be36683bb44a6d3b2402a..160962c814cd7346166364e370e1fdd274ee7116 100644
--- a/moodle/bulk-enrol.py
+++ b/moodle/bulk-enrol.py
@@ -147,11 +147,17 @@ cookies = get_moodle_cookies()
 info = get_enrol_info(cookies, url)
 
 with open(students_file) as f:
+    done = set()
     for line in f:
         search = line.strip()
         if len(search) == 0:
             continue
 
+        # avoid duplicates since search results exclude enrolled users
+        if search in done:
+            continue
+        done.add(search)
+
         student = get_user(cookies, info, search)
         if student is None:
             print(f"WARNING: no hit for {search}, ignoring.")