--- collection.module	2009-03-30 14:34:03.000000000 +-0200
+++ collection.module	2009-10-21 15:23:01.000000000 +-0200
@@ -285,17 +285,23 @@
  *   ID of node
  * @return
  *   FALSE if node isn't a menber of any collections
  *   Or an array of collection ID's - array($collection_nid [, $collection_nid])
  */
 function collection_get_collections_by_node($nid) {
+  global $user;
   $node_ids = array();
   
   foreach (collection_types() as $node_type => $db_info) {
     list($table_name, $column_name) = $db_info;
-    $result = db_query('SELECT n.nid FROM {' . $table_name . '} JOIN {node} n USING (nid, vid) WHERE ' . $column_name . ' = %d AND status = 1 ORDER BY n.nid', $nid);
+    if (user_access('administer nodes')) {
+      $result = db_query('SELECT n.nid FROM {' . $table_name . '} JOIN {node} n USING (nid, vid) WHERE ' . $column_name . ' = %d ORDER BY n.nid', $nid);
+    }
+    else {
+      $result = db_query('SELECT n.nid FROM {' . $table_name . '} JOIN {node} n USING (nid, vid) WHERE ' . $column_name . ' = %d AND (status = 1 OR uid = %d) ORDER BY n.nid', array($nid, $user->uid));
+    }
     while ($row = db_fetch_object($result)) {
       $node_ids[] = $row->nid;
     }
   }
   if (!empty($node_ids)) {
     return $node_ids; 
