diff --git a/templates/courses.html b/templates/courses.html
index 9be576a26ddc136c3a6126671e01844f61b8b0a9..b3dc3cf5e2264ef7f80ae64d00e08ed6af32d879 100644
--- a/templates/courses.html
+++ b/templates/courses.html
@@ -27,8 +27,18 @@
 	</div>
 </div>
 
+<div class="visible-xs" id="xs-check"></div>
 {% if groupedby == 'semester' %}
-	{% set grouped_courses = courses|groupby(groupedby)|reverse %}
+	{% set grouped_courses = courses|groupby(groupedby)|reverse|list %}
+	<script>
+		function autocollapse() {
+			if($("#xs-check").is(":visible")) {
+				/* Only expand current semester */
+				$(".collapse[id!='{{grouped_courses[1].grouper}}']").removeClass('in');
+			}
+		}
+		$(document).ready(autocollapse);
+	</script>
 {% else %}
 	{% set grouped_courses = courses|groupby(groupedby) %}
 {% endif %}
@@ -57,10 +67,4 @@
 	</div></div>
 </div>
 {% endfor %}
-<div class="visible-xs" id="xs-check"></div>
-<script>
-if($("#xs-check").is(":visible")) {
-	$("#zeitlos").removeClass('in')
-}
-</script>
 {% endblock %}