diff --git a/cutprogress.py b/cutprogress.py
index 695d8e29487c3253b7a4c36ee9f2098f9eba880f..51279471def9c7ff4639522e34e50303d7ffdb2e 100644
--- a/cutprogress.py
+++ b/cutprogress.py
@@ -11,9 +11,9 @@ def cutprogress(user=None):
 	allsemester = query('SELECT DISTINCT semester from courses ORDER BY semester DESC')
 	semester = request.values.get('semester', allsemester[0]['semester'])
 
-	# column headers: courses
+	# find courses for semester
 	courses = query('''
-		SELECT courses.id, courses.handle, courses.short, courses.responsible
+		SELECT courses.id, courses.handle, courses.short
 		FROM courses
 		WHERE semester = ?
 		ORDER by id DESC
@@ -30,28 +30,37 @@ def cutprogress(user=None):
 			''', course['id'])
 
 		if not people:
-			people = [{ 'realname': 'Niemand' }]
+			people = [{ 'realname': 'Niemand', 'id': -1 }]
 
 		course['responsible'] = people
 
-	# fetch lectures
-	lectures = query('''
-		SELECT
-			lectures.id,
-			lectures.course_id,
-			lectures.time, DATE(lectures.time) as date,
-			lectures.title,
-			COUNT(videos.id) as videos_total,
-			COUNT(videos.visible) as videos_visible
-		FROM lectures
-		JOIN courses ON courses.id = lectures.course_id
-		LEFT JOIN videos ON lectures.id = videos.lecture_id
-		WHERE courses.semester = ?
-			AND date <= DATE('now')
-			AND NOT lectures.norecording
-		GROUP BY lectures.id
-		ORDER BY date DESC, lectures.time ASC, lectures.id ASC
-		''', semester)
+	# filter for responsibility
+	if user is not None:
+		courses = [
+			c for c in courses
+			if user in (r['id'] for r in c['responsible'])
+		]
+
+	# fetch lectures for courses
+	lectures = []
+	for c in courses:
+		lectures += query('''
+			SELECT
+				lectures.id,
+				lectures.course_id,
+				lectures.time, DATE(lectures.time) as date,
+				lectures.title,
+				COUNT(videos.id) as videos_total,
+				COUNT(videos.visible) as videos_visible
+			FROM lectures
+			JOIN courses ON courses.id = lectures.course_id
+			LEFT JOIN videos ON lectures.id = videos.lecture_id
+			WHERE courses.id = ?
+				AND date <= DATE('now')
+				AND NOT lectures.norecording
+			GROUP BY lectures.id
+			ORDER BY date DESC, lectures.time ASC, lectures.id ASC
+			''', c['id'])
 
 	# sort dates, figure out when weeks change
 	dates = sorted({
diff --git a/static/style.css b/static/style.css
index e2060c23287d11d3987ee1ba1ee9070964b80702..90c0c43369dfbbdd29519ee0aed494ffb4bab262 100644
--- a/static/style.css
+++ b/static/style.css
@@ -137,7 +137,12 @@ th.rotate {
 th.rotate > div {
   transform:
     rotate(270deg)
-    translate(-50px,0px);
+    translate(-100px,0px);
+  width: 30px;
+}
+
+th.rotate > div > span {
+	padding: 5px 10px;
 }
 
 .tooltip-inner {
@@ -145,6 +150,10 @@ th.rotate > div {
 
 }
 
+#cutprogress td {
+	white-space: nowrap;
+}
+
 #cutprogress.table tr.weekbreak td {
 	border-top: 2px solid black !important;
 }
diff --git a/templates/cutprogress.html b/templates/cutprogress.html
index 6e145d2334f4a9978770a7bd1dbb62366eb172f9..043050eda0b36c21051938e0a06fa11e408d409e 100644
--- a/templates/cutprogress.html
+++ b/templates/cutprogress.html
@@ -18,9 +18,9 @@
 						Datum
 					</th>
 				{% for course in courses %}
-					<th class="text-center rotate">
+					<th class="rotate">
 						<div>
-							<a title="Zuständig: {{ course.responsible|join(attribute='realname') }}" href="{{ url_for("course", handle=course.handle) }}">{{ course.short }}</a>
+							<span><a title="Zuständig: {{ course.responsible|join(attribute='realname') }}" href="{{ url_for("course", handle=course.handle) }}">{{ course.short }}</a></span>
 						</div>
 					</th>
 				{% endfor %}