diff --git a/server.py b/server.py
index b5397a4224b5fe779ea899600a91b6dbe3d14454..0997e7ca654d2119ca65594664ec86f3bd2d2e3d 100755
--- a/server.py
+++ b/server.py
@@ -1524,6 +1524,26 @@ def list_errors():
         "errors-list.html", erros=errors, errors_table=errors_table)
 
 
+@app.route("/errors/delete")
+@login_required
+@protect_csrf
+@require_modify_right()
+def delete_errors():
+    user = current_user()
+    errors = [
+        error for error in Error.query.all()
+        if error.protocol.protocoltype.has_private_view_right(user)
+    ]
+    if errors:
+        for error in errors:
+            db.session.delete(error)
+        db.session.commit()
+        flash("Alle verfügbaren Fehler gelöscht.", "alert-success")
+    else :
+        flash("Keine Fehler zum Löschen gefunden.")
+    return back.redirect("list_errors")
+
+
 @app.route("/error/show/<int:error_id>")
 @back.anchor
 @login_required
diff --git a/templates/errors-list.html b/templates/errors-list.html
index aaab0b7002841bf5b297cbb7bd05dd8212530112..9a211a419bcb3764cacbe57069a9f79cec3721de 100644
--- a/templates/errors-list.html
+++ b/templates/errors-list.html
@@ -5,5 +5,6 @@
 {% block content %}
 <div class="container">
     {{render_table(errors_table)}}
+    <a href="{{url_for("delete_errors", csrf_token=get_csrf_token())}}"> Alle Löschen</a>
 </div>
 {% endblock %}