diff --git a/owl/course.py b/owl/course.py
index b22c2512ab0b11f5559a094d3bcb234fbc19ddf9..43f333d851dd4b377f6924e1da7df285926d23d6 100644
--- a/owl/course.py
+++ b/owl/course.py
@@ -179,6 +179,9 @@ def enroll_token(token: str) -> str:
         if form.validate_on_submit():
             enroll_commit(course)
             return redirect(url_for('course_index', sident=course.semester.ident, cident=course.ident))
+    elif course is not None:
+        # Already joined
+        return redirect(url_for('course_index', sident=course.semester.ident, cident=course.ident))
 
     return render_template('join-token.html', form=form, error=err, course=course)