diff --git a/app/views/staff.py b/app/views/staff.py
index c5a938eb40c87e22328553d8e65510e2613e33be..96b7a8a6ebc9bb7ef08ad5217a772b12d30c7019 100644
--- a/app/views/staff.py
+++ b/app/views/staff.py
@@ -1,4 +1,3 @@
-import sys
 from datetime import datetime
 
 from flask import Blueprint, flash, redirect, render_template, request, url_for
@@ -64,7 +63,6 @@ def projects():
         .filter(Project.deleted.is_(None))
         .all()
     )
-    sys.stderr.write(str(allow_edit))
     return render_template(
         "pages/staff/projects.html",
         own_projects=own_projects,
@@ -74,10 +72,14 @@ def projects():
     )
 
 
+def is_deadline_expired_for_staff(category_code):
+    category = Category.query.get(category_code)
+    return datetime.utcnow() > category.deadline_for_staff_change
+
+
 @bp.route("/projects/create", methods=["GET", "POST"])
 @login_required
 @staff_only
-@only_before_deadline_for_staff
 def create_project():
     category_codes: list[str] = (
         Person.query.filter_by(username=current_user.username).first().categories
@@ -117,10 +119,13 @@ def create_project():
             proposed_start_date=form.proposed_start_date.data,
             duration_in_weeks=form.duration_in_weeks.data,
         )
-        db.session.add(project)
-        db.session.commit()
-        if project.on_behalf:
-            shortlist_proposer(project)
+        if is_deadline_expired_for_staff(form.category.data):
+            flash(messages.DEADLINE_EXPIRED_FOR_STAFF)
+        else:
+            db.session.add(project)
+            db.session.commit()
+            if project.on_behalf:
+                shortlist_proposer(project)
         return redirect(url_for("staff.projects"))
     elif request.method == "POST":
         if form.category.data not in category_codes:
@@ -133,20 +138,18 @@ def create_project():
 @bp.route("/projects/<project_id>/delete")
 @login_required
 @staff_only
-@only_before_deadline_for_staff
 def delete_project(project_id):
-    can_delete = True
     category_codes: list[str] = (
         Person.query.filter_by(username=current_user.username).first().categories
     )
     project = Project.query.get(project_id)
-    if not project:
-        can_delete = False
-    elif project.category not in category_codes:
-        can_delete = False
-    elif project.proposer != current_user.username:
-        can_delete = False
-    if can_delete:
+    if (project is not None) and is_deadline_expired_for_staff(project.category):
+        flash(messages.DEADLINE_EXPIRED_FOR_STAFF)
+    elif (
+        (project is not None)
+        and (project.category in category_codes)
+        and (project.proposer == current_user.username)
+    ):
         project.deleted = datetime.utcnow()
         db.session.commit()
     else: