diff --git a/mo/web/org_contest.py b/mo/web/org_contest.py
index 7c8979a5ad489b39dc7b899788a203685cde81c7..57c6d5c951ed34bda98877c04f74489ddb7e7fe2 100644
--- a/mo/web/org_contest.py
+++ b/mo/web/org_contest.py
@@ -1106,7 +1106,6 @@ def org_contest_task(ct_id: int, task_id: int, site_id: Optional[int] = None):
         changed_sols: List[db.Solution] = []
 
         def update_sol(pion, sol, action, points) -> Optional[str]:
-            print(f'update_sol: action={action} points={points}')
             # Aktualizuje řešení, zkontroluje práva a případně vrátí chybovou hlašku.
             # Vyhýbáme se všemu, co nejde rollbacknout, takže logování do souboru necháme na později.
             if not sol:
@@ -1144,17 +1143,20 @@ def org_contest_task(ct_id: int, task_id: int, site_id: Optional[int] = None):
                 deleted_sols.append(sol)
                 return None
 
-            if sol.points != points:
-                # Chceme změnit počet bodů (po případném založení řešení)
+            is_empty = (action == 'P')
+            if sol.points != points or sol.is_empty != is_empty:
+                # Chceme změnit počet bodů nebo prázdnost protokolu (po případném založení řešení)
                 if not ctx.rights.can_edit_points():
                     return 'Nemáte právo k zadávání bodů, můžete jen zakládat řešení'
                 sol.points = points
+                sol.is_empty = is_empty
                 sess.add(db.PointsHistory(
                     task=ctx.task,
                     participant=sol.user,
                     user=g.user,
                     points_at=mo.now,
                     points=points,
+                    is_empty=is_empty,
                 ))
                 changed_sols.append(sol)
 
diff --git a/mo/web/templates/parts/org_solution_table.html b/mo/web/templates/parts/org_solution_table.html
index dc9619d0852d7d430caed7148ca6a8f69625eef6..83e28d1b21cda86e59821f55c8d8f96cec96f6fa 100644
--- a/mo/web/templates/parts/org_solution_table.html
+++ b/mo/web/templates/parts/org_solution_table.html
@@ -25,7 +25,8 @@ Zde můžete bodovat odevzdaná řešení.
 Zde můžete zakládat a rušit odevzdaná řešení.
 {% endif %}
 Prázdná hodnota ve sloupečku „Přidělené body“ znamená „neobodováno“,
-hodnota X znamená „řešení nebylo odevzdáno“.
+hodnota X znamená „řešení nebylo odevzdáno“,
+P znamená „prázdný protokol, který neobsahuje řešení“.
 {% if edit_create %}
 Smazáním X založíte nové řešení – to se hodí, pokud se nechystáte do systému nahrávat soubory řešení,
 ale jen chcete řešení vytvořit, aby jim bylo možné vyplnit body.