diff --git a/aleksis/core/rules.py b/aleksis/core/rules.py
index dd75c39970a41a13da94854efd400e2945869ea6..c141363cd0e9493751aed31627a7bf47bb1c1e18 100644
--- a/aleksis/core/rules.py
+++ b/aleksis/core/rules.py
@@ -94,13 +94,13 @@ add_perm("core.manage_data", manage_data_predicate)
 
 # View announcements
 view_announcements_predicate = has_person_predicate & (
-    has_global_perm("core.view_announcements") | has_any_object("core.view_announcements", Announcement)
+    has_global_perm("core.view_announcement") | has_any_object("core.view_announcement", Announcement)
 )
 add_perm("core.view_announcements", view_announcements_predicate)
 
-# Create or edit announcements
+# Create or edit announcement
 create_or_edit_announcement_predicate = has_person_predicate & (
-    has_global_perm("core.create_or_edit_announcement") | has_object_perm("core.create_or_edit_announcement")
+    has_global_perm("core.add_announcement") & (has_global_perm("core.change_announcement") | has_object_perm("core.change_announcement"))
 )
 add_perm("core.create_or_edit_announcement", create_or_edit_announcement_predicate)