=== modified file 'sites/all/modules/contrib/image/image.install'
--- sites/all/modules/contrib/image/image.install	2009-08-06 05:00:00 +0000
+++ sites/all/modules/contrib/image/image.install	2009-08-06 06:04:12 +0000
@@ -334,3 +334,18 @@ function image_update_6102() {
   return $ret;
 }
 
+/**
+ * Change 'edit images' permissions to 'edit any image' and 'delete any image'.
+ */
+function image_update_6103() {
+  $ret = array();
+  $result = db_query("SELECT rid, perm FROM {permission} WHERE perm LIKE '%edit image%'");
+  while ($data = db_fetch_object($result)) {
+    $perm = str_replace('edit image', 'edit any image', $data->perm);
+    $perm = explode(', ', $perm);
+    $perm[] = 'delete any image';
+    $perm[] = 'edit any image';
+    $ret[] = update_sql("UPDATE {permission} SET perm = '" . implode(', ', $perm) . "' WHERE rid = " . $data->rid);
+  }
+  return $ret;
+}

=== modified file 'sites/all/modules/contrib/image/image.module'
--- sites/all/modules/contrib/image/image.module	2009-08-06 05:00:00 +0000
+++ sites/all/modules/contrib/image/image.module	2009-08-06 06:02:58 +0000
@@ -81,24 +81,20 @@ function image_node_info() {
  * Implementation of hook_perm
  */
 function image_perm() {
-  return array('create images', 'view original images', 'edit own images', 'edit images');
+  return array('create images', 'delete any image', 'delete own images', 'edit any image', 'edit own images', 'view original images');
 }
 
 /**
  * Implementation of hook_access().
  */
 function image_access($op, $node, $account) {
-  if ($op == 'create' && user_access('create images', $account)) {
-    return TRUE;
-  }
-
-  if ($op == 'update' || $op == 'delete') {
-    if (user_access('edit images', $account)) {
-      return TRUE;
-    }
-    if (user_access('edit own images', $account) && ($account->uid == $node->uid)) {
-      return TRUE;
-    }
+  switch ($op) {
+    case 'create':
+      return user_access('create images', $account) ? TRUE : NULL;
+    case 'update':
+      return user_access('edit any image', $account) || (user_access('edit own images', $account) && ($account->uid == $node->uid)) ? TRUE : NULL;
+    case 'delete':
+      return user_access('delete any image', $account) || (user_access('delete own images', $account) && ($account->uid == $node->uid)) ? TRUE : NULL;
   }
 }
 

