diff --git a/templates/courses.html b/templates/courses.html
index 231b0ac98d28ec0cd9b7137f67360b2ef4659f14..f8f07bf0b99a085af995c81da5bb273f67733179 100644
--- a/templates/courses.html
+++ b/templates/courses.html
@@ -25,7 +25,14 @@
 		</ul>
 	</div>
 </div>
-{% for g in courses|groupby(groupedby)|reverse %}
+
+{% if groupedby == 'semester' %}
+	{% set grouped_courses = courses|groupby(groupedby)|reverse %}
+{% else %}
+	{% set grouped_courses = courses|groupby(groupedby) %}
+{% endif %}
+
+{% for g in grouped_courses %}
 <div class="row panel-group">
 	<div class="col-xs-12"><div class="panel panel-default">
 		<div class="panel-heading">
@@ -36,7 +43,7 @@
 			{% endif %}
 		</div>
 		<ul class="{% if not ismod() %}courses-list {% endif %}list-group">
-			{% for i in g.list|dictsort('title') %}
+			{% for i in g.list|sort(attribute='title') %}
 				{% if groupedby == 'semester' %}
 					{{ course_list_item(i) }}
 				{% else %}