diff --git a/db_schema.sql b/db_schema.sql
index 071ad920bedd671073c8778cea19ab26dd38dfa3..d41e754b164ca5793b26cf96405bc4dbb2690472 100644
--- a/db_schema.sql
+++ b/db_schema.sql
@@ -223,7 +223,7 @@ CREATE TABLE IF NOT EXISTS `featured` (
 	`type` varchar(32) NOT NULL DEFAULT '',
 	`param` text NOT NULL DEFAULT '',
 	`param2` text NOT NULL DEFAULT '',
-	`order` INTEGER NOT NULL,
+	`order` INTEGER DEFAULT NULL,
 	`visible` INTEGER NOT NULL DEFAULT 0,
 	`deleted` INTEGER NOT NULL DEFAULT 0,
   `time_created` datetime NOT NULL,
@@ -272,4 +272,5 @@ CREATE VIEW IF NOT EXISTS `courses` AS select * from `courses_data` where (not(`
 CREATE VIEW IF NOT EXISTS `lectures` AS select `lectures_data`.* from `lectures_data` join `courses_data` on (`courses_data`.`id` = `course_id`) where (not(`lectures_data`.`deleted` or `courses_data`.`deleted`));
 CREATE VIEW IF NOT EXISTS `videos` AS select `videos_data`.* from `videos_data` join `lectures_data` on (`lectures_data`.`id` = `lecture_id`) join `courses_data` on (`courses_data`.`id` = `course_id`) where (not(`videos_data`.`deleted` or `lectures_data`.`deleted` or `courses_data`.`deleted`));
 CREATE VIEW IF NOT EXISTS `sorterrorlog` AS select * from `sorterrorlog_data` where (not(`sorterrorlog_data`.`deleted`));
+CREATE TRIGGER IF NOT EXISTS featured_unique_order AFTER INSERT ON featured FOR EACH ROW BEGIN UPDATE featured SET `order` = (SELECT MAX(`order`) FROM featured)+1 WHERE id = NEW.id; END;
 COMMIT;
diff --git a/server.py b/server.py
index c052270daa8fe214d2ca287ec6dce411b745e2b4..55aa88c2fa0cb011785c0c6170fcf79255554cb9 100644
--- a/server.py
+++ b/server.py
@@ -327,16 +327,13 @@ def index():
 		WHERE streams.active AND (? OR (streams.visible AND courses.visible AND courses.listed AND lectures.visible))
 		''', ismod())
 	featured = query('SELECT * FROM featured WHERE (? OR visible) ORDER BY `order`', ismod())
-	newfeatured = 0
-	if featured:
-		newfeatured = featured[-1]['order'] + 1
 	featured = list(filter(lambda x: not x['deleted'], featured))
 	for item in featured:
 		if item['type'] == 'courses':
 			if item['param'] not in ['title', 'semester', 'organizer', 'subject']:
 				continue
 			item['courses'] = query('SELECT * FROM courses WHERE (visible AND listed) AND `%s` = ? ORDER BY `%s`'%(item['param'], item['param']), item['param2'])
-	return render_template('index.html', latestvideos=livestreams+latestvideos, upcomming=upcomming, featured=featured, newfeatured=newfeatured)
+	return render_template('index.html', latestvideos=livestreams+latestvideos, upcomming=upcomming, featured=featured)
 
 @app.route('/course')
 @register_navbar('Videos', icon='film')
@@ -505,7 +502,7 @@ tabs = {
 			'deleted', 'time_publish', 'time_expire'],
 			['created_by', 'time_created', 'time_updated']),
 	'featured': ('featured', 'id', ['title', 'text', 'internal', 'visible', 'deleted', 'param', 'param2', 'order'],
-			['created_by', 'time_created', 'time_updated', 'type', 'order']),
+			['created_by', 'time_created', 'time_updated', 'type']),
 	'perm': ('perm', 'id', ['type', 'param1', 'param2', 'deleted'],
 			['course_id', 'lecture_id', 'video_id', 'created_by', 'time_created', 'time_updated']),
 	'sorterrorlog': ('sorterrorlog_data', 'id', ['deleted'],
diff --git a/templates/index.html b/templates/index.html
index 984d29cf001967e7db08019c299324c2611bc9ce..b036828b4659cd5a8acbc47c82d5dc4f8ef96417 100644
--- a/templates/index.html
+++ b/templates/index.html
@@ -57,9 +57,9 @@
 				<div class="btn-group">
 					<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Neues Panel <span class="caret"></span></button>
 					<ul class="dropdown-menu">
-						<li><a href="{{ url_for('create', table='featured', title='Neues Panel', type='plain', ref=request.url, order=newfeatured) }}">Nur Text</a></li>
-						<li><a href="{{ url_for('create', table='featured', title='Neues Panel', type='image', ref=request.url, order=newfeatured) }}">Text mit Bild</a></li>
-						<li><a href="{{ url_for('create', table='featured', title='Neues Panel', type='courses', param='semester', param2='', ref=request.url, order=newfeatured) }}">Veranstaltungsliste</a></li>
+						<li><a href="{{ url_for('create', table='featured', title='Neues Panel', type='plain', ref=request.url) }}">Nur Text</a></li>
+						<li><a href="{{ url_for('create', table='featured', title='Neues Panel', type='image', ref=request.url) }}">Text mit Bild</a></li>
+						<li><a href="{{ url_for('create', table='featured', title='Neues Panel', type='courses', param='semester', param2='', ref=request.url) }}">Veranstaltungsliste</a></li>
 					</ul>
 				</div>
 			</li>
@@ -79,19 +79,15 @@
 					{{ moderator_editor(('featured',item.id,'title'), item.title) }} {{ moderator_checkbox(('featured',item.id,'visible'), item.visible) }}
 					{% if ismod() %}
 					<div class="btn-group pull-right" role="group">
-						{% if (loop.first or featured[loop.index0-1].order != item.order) and (loop.last or featured[loop.index0+1].order != item.order) %}
-							{% if not loop.first %}
-								<a class="btn btn-default" href="{{ url_for('edit', **{'featured.'+item.id|string+'.order': featured[loop.index0-1].order, 'featured.'+featured[loop.index0-1].id|string+'.order': item.order, 'ref': request.url})}}"><span class="glyphicon glyphicon-arrow-up"></span></a>
-							{% else %}
-								<button class="btn btn-default disabled"><span class="glyphicon glyphicon-arrow-up"></span></button>
-							{% endif %}
-							{% if not loop.last %}
-								<a class="btn btn-default" href="{{ url_for('edit', **{'featured.'+item.id|string+'.order': featured[loop.index0+1].order, 'featured.'+featured[loop.index0+1].id|string+'.order': item.order, 'ref': request.url})}}"><span class="glyphicon glyphicon-arrow-down"></span></a>
-							{% else %}
-								<button class="btn btn-default disabled"><span class="glyphicon glyphicon-arrow-down"></span></button>
-							{% endif %}
+						{% if not loop.first %}
+							<a class="btn btn-default" href="{{ url_for('edit', **{'featured.'+item.id|string+'.order': featured[loop.index0-1].order, 'featured.'+featured[loop.index0-1].id|string+'.order': item.order, 'ref': request.url})}}"><span class="glyphicon glyphicon-arrow-up"></span></a>
 						{% else %}
-							<a class="btn btn-default" data-toggle="tooltip" title="Sortierung reparieren" href="{{ url_for('edit', **{'featured.'+item.id|string+'.order': newfeatured, 'ref': request.url})}}"><span class="glyphicon glyphicon-sort-by-attributes"></span></a>
+							<button class="btn btn-default disabled"><span class="glyphicon glyphicon-arrow-up"></span></button>
+						{% endif %}
+						{% if not loop.last %}
+							<a class="btn btn-default" href="{{ url_for('edit', **{'featured.'+item.id|string+'.order': featured[loop.index0+1].order, 'featured.'+featured[loop.index0+1].id|string+'.order': item.order, 'ref': request.url})}}"><span class="glyphicon glyphicon-arrow-down"></span></a>
+						{% else %}
+							<button class="btn btn-default disabled"><span class="glyphicon glyphicon-arrow-down"></span></button>
 						{% endif %}
 						{{ moderator_delete(['featured',item.id,'deleted']) }}
 					</div>