diff --git a/server.py b/server.py
index 01eba30dcad747ac3b73efedef976f19df0d400c..6816dff190476efd1948dca6ff12573ec891989c 100755
--- a/server.py
+++ b/server.py
@@ -228,7 +228,7 @@ def logout():
 	else:
 		return redirect(url_for('index'))
 
-@app.route('/edit')
+@app.route('/edit', methods=['GET', 'POST'])
 @mod_required
 def edit():
 	tabs = {
@@ -238,13 +238,13 @@ def edit():
 		'lectures': ('lectures_data', 'id', ['visible', 'title', 'comment',
 				'internal', 'speaker', 'place', 'time', 'duration', 'jumplist',
 				'titlefile']),
-		'site_texts': ('site_texts', 'key' ['value']),
+		'site_texts': ('site_texts', 'key', ['value']),
 		'videos': ('videos_data', 'id', ['visible', 'downloadable', 'title',
 				'comment', 'internal'])
 	}
 	query('BEGIN TRANSACTION')
 	for key, val in request.get_json():
-		table, column, id = key.split('.', 2)
+		table, id, column = key.split('.', 2)
 		assert table in tabs
 		assert column in tabs[table][2]
 		query('UPDATE %s SET %s = ? WHERE %s = ?'%(tabs[table][0], column,
diff --git a/static/moderator.js b/static/moderator.js
new file mode 100644
index 0000000000000000000000000000000000000000..a502dcc8eb0715ccc8eb2ec10354f903fb7596a2
--- /dev/null
+++ b/static/moderator.js
@@ -0,0 +1,60 @@
+var moderatorinterface = {
+	init: function () {
+		$(function () {
+			var editable = $('.modeditable');
+			for (var i=0; i<editable.length; i++) {
+				var e = $(editable[i]);
+
+				$('.modeditablesign',e).popover(
+					{
+						title: e.data('path'),
+						html: true,
+						trigger: 'click',
+						container: 'body',
+						content: function() {
+							return `
+								<div class="row form-group">
+									<span class="col-xs-12">
+										<textarea class="form-control" rows="3">`+this.parentElement.getElementsByClassName('modeditablevalue')[0].innerHTML+`</textarea>
+									</span>
+									<span class="col-xs-12">
+										<input class="btn btn-default pull-right" type="submit" data-path="`+$(this.parentElement).data('path')+`" value="save" onClick="moderatorinterface.edit()">
+									</span>
+								</div>
+								`;
+						}
+					}		
+				);
+			}
+		})
+	},
+	edit: function () {
+		var event = window.event;
+		var value = $(event.srcElement)[0].parentElement.previousElementSibling.children[0].value;
+		var path = $($(event.srcElement)[0]).data('path');
+
+		var editable = $('.modeditable');
+		for (var i=0; i<editable.length; i++) {
+			var e = $(editable[i]);
+
+			if (e.data('path') == path) {
+				$('.modeditablesign',e).click();
+				$(".modeditablevalue",e).html(value);
+			}
+		}
+		var req = {};
+		req[path] = value;
+		$.ajax({
+			method: "POST",
+			url: "/edit",
+			contentType: "application/json",
+			data: req
+		})
+		.done(function( msg ) {
+			alert( "Data Saved: " + msg );
+		});
+
+	}
+};
+
+$( document ).ready( moderatorinterface.init() );
diff --git a/templates/base.html b/templates/base.html
index db02b7e06cdd0cb9296f29e669df7f3f9585883a..a6ad2219de0963a4c28ab40a25b691b3287cf99f 100644
--- a/templates/base.html
+++ b/templates/base.html
@@ -21,6 +21,7 @@
 		<meta name="viewport" content="width=device-width, initial-scale=1">
 		<link href="static/bootstrap/bootstrap.css" rel="stylesheet">
 		<script src="static/bootstrap/bootstrap.js"></script>
+		{%if ismod() %}<script src="static/moderator.js"></script>{% endif %}
 	</head>
 	<body>
 		<nav class="navbar navbar-default navbar-static-top">
@@ -58,7 +59,7 @@
 									</li>
 									{% endfor %}
 									<li class="navbar-right">
-										{% if not session.user is defined %}
+										{% if not ismod() %}
 										<a id="loginpopover" data-container="body" data-toggle="popover" data-placement="bottom"> 
 											<span class="glyphicon glyphicon-log-in"></span>
 										</a>
diff --git a/templates/course.html b/templates/course.html
index 6676985e5d7a96a19ae97661813b4068cb349cb9..4f2cafc7555543b84f7885d8bf82dad2cac96db1 100644
--- a/templates/course.html
+++ b/templates/course.html
@@ -1,18 +1,19 @@
 {% from 'macros.html' import lecture_list_item %}
+{% from 'macros.html' import valueeditor %}
 {% from 'macros.html' import preview %}
 {% extends "base.html" %}
 {% block content %}
 <div class="panel panel-default">
 	<div class="panel-heading">
-		<h1 class="panel-title">{{course.title}}</h1>
+		<h1 class="panel-title">{{ valueeditor(['courses',course.id,'title'], course.title)}}</h1>
 	</div>
 	<div class="row panel-body">
 		<div class="col-xs-12">
 			<table class="table-condensed">
 				<tbody>
-					<tr><td>Semester:</td><td>{{course.semester}}</td></tr>
-					<tr><td>Veranstalter:</td><td>{{course.organizer}}</td></tr>
-					<tr><td>Bemerkungen:</td><td>{{course.description|safe}}</td></tr>
+					<tr><td>Semester:</td><td>{{ valueeditor(['courses',course.id,'semester'], course.semester) }}</td></tr>
+					<tr><td>Veranstalter:</td><td>{{ valueeditor(['courses',course.id,'organizer'], course.organizer) }}</td></tr>
+					<tr><td>Bemerkungen:</td><td>{{ valueeditor(['courses',course.id,'description'], course.description) }}</td></tr>
 				</tbody>
 			</table>
 		</div>
diff --git a/templates/macros.html b/templates/macros.html
index 97deff647d48d90f59067690add79d6e0c3f14aa..9ff35641c6ac6be280cdc7098a083194011dd7e3 100644
--- a/templates/macros.html
+++ b/templates/macros.html
@@ -141,14 +141,20 @@ $('#embedcodebtn').popover(
 				<span class="dropdown">
 					{{ video_download_btn(videos) }}
 				</span>
-				<a href="/play?lectureid={{lecture.id}}">
-					<button class="btn btn-default {% if videos|length is equalto 0 %}disabled{% endif %}" type="button">
-						<span class="glyphicon glyphicon-play"></span>
-						<span>Play</span>
-					</button>
+				<a href="/play?lectureid={{lecture.id}}" class="btn btn-default {% if videos|length is equalto 0 %}disabled{% endif %}">
+					<span class="glyphicon glyphicon-play"></span>
+					Play
 				</a>
 			</span>
 		</span>
 	</div>
 </li>
 {% endmacro %}
+
+{% macro valueeditor (path,value) %}
+	{% if ismod() %}
+	<span class="modeditable" data-path="{{path|join('.')}}" ><a class="modeditablesign btn btn-default" tabindex="0" style="padding: 3px; margin-right: 5px;"><span class="glyphicon glyphicon-pencil"></span></a><span class="modeditablevalue">{{ value|safe }}</span></span>
+	{% else %}
+		{{value|safe}}
+	{% endif %}
+{% endmacro%}