--- publishcontent.module	2010-07-02 15:41:48.000000000 +0100
+++ publishcontent.module	2010-08-04 11:44:24.000000000 +0100
@@ -62,7 +62,8 @@ function _publishcontent_publish_access(
   global $user;
   return !$node->status && (user_access('publish any content') ||
                            (user_access('publish own '. check_plain($node->type) .' content', $user) && $user->uid == $node->uid) ||
-                            user_access('publish any '. check_plain($node->type) .' content'));
+                            user_access('publish any '. check_plain($node->type) .' content') ||
+                           (user_access('publish editable '. check_plain($node->type) .' content') && node_access('update', $node)));
 }
 function _publishcontent_unpublish_access($node, $token = FALSE) {
   if ($token && !drupal_valid_token($token)) {
@@ -71,7 +72,8 @@ function _publishcontent_unpublish_acces
   global $user;
   return $node->status && (user_access('unpublish any content') ||
                           (user_access('unpublish own '. check_plain($node->type) .' content', $user) && $user->uid == $node->uid) ||
-                           user_access('unpublish any '. check_plain($node->type) .' content'));
+                           user_access('unpublish any '. check_plain($node->type) .' content') ||
+                          (user_access('unpublish editable '. check_plain($node->type) .' content') && node_access('update', $node)));
 }
 
 /**
@@ -90,8 +92,10 @@ function publishcontent_perm() {
   foreach (node_get_types() as $type) {
     if (isset($type->type)) {
       $perms[] = 'publish any '. check_plain($type->type) .' content';
+      $perms[] = 'publish editable ' . check_plain($type->type) .' content';
       $perms[] = 'publish own '. check_plain($type->type) .' content';
       $perms[] = 'unpublish any '. check_plain($type->type) .' content';
+      $perms[] = 'unpublish editable ' . check_plain($type->type) .' content';
       $perms[] = 'unpublish own '. check_plain($type->type) .' content';
     }
   }
