diff --git a/phpBB/docs/CHANGELOG.html b/phpBB/docs/CHANGELOG.html
index daffd86b23..00f239f6b4 100644
--- a/phpBB/docs/CHANGELOG.html
+++ b/phpBB/docs/CHANGELOG.html
@@ -112,6 +112,7 @@
[Fix] Do not deliver topics from unreadable or passworded forums in the news feed. (Bug #54345)
[Fix] Restore user language choice to compiled stylesheets. (Bug #54035)
[Fix] Add missing language entries. (Bug #55095)
+ [Fix] Do not permit unauthorised users to delete private messages from folder listing. (Bug #54355)
[Change] Log activation through inactive users ACP. (Bug #30145)
[Change] Send time of last item instead of current time in ATOM Feeds. (Bug #53305)
[Change] Use em dash instead of hyphen/minus as separator in ATOM Feeds item statistics. (Bug #53565)
diff --git a/phpBB/includes/functions_privmsgs.php b/phpBB/includes/functions_privmsgs.php
index c93b6a6bba..4fc5034f7b 100644
--- a/phpBB/includes/functions_privmsgs.php
+++ b/phpBB/includes/functions_privmsgs.php
@@ -894,6 +894,13 @@ function handle_mark_actions($user_id, $mark_action)
case 'delete_marked':
+ global $auth;
+
+ if (!$auth->acl_get('u_pm_delete'))
+ {
+ trigger_error('NO_AUTH_DELETE_MESSAGE');
+ }
+
if (confirm_box(true))
{
delete_pm($user_id, $msg_ids, $cur_folder_id);
diff --git a/phpBB/includes/ucp/ucp_pm_viewfolder.php b/phpBB/includes/ucp/ucp_pm_viewfolder.php
index 33d2c9fb6f..06852db591 100644
--- a/phpBB/includes/ucp/ucp_pm_viewfolder.php
+++ b/phpBB/includes/ucp/ucp_pm_viewfolder.php
@@ -65,6 +65,12 @@ function view_folder($id, $mode, $folder_id, $folder)
$mark_options = array('mark_important', 'delete_marked');
+ // Minimise edits
+ if (!$auth->acl_get('u_pm_delete') && $key = array_search('delete_marked', $mark_options))
+ {
+ unset($mark_options[$key]);
+ }
+
$s_mark_options = '';
foreach ($mark_options as $mark_option)
{