=== modified file 'filefield.module'
--- filefield.module	2010-01-27 15:50:24 +0000
+++ filefield.module	2010-01-27 16:46:01 +0000
@@ -180,7 +180,7 @@
       if (isset($nodes[$content['nid']])) {
         continue; // Don't check the same node twice.
       }
-      if ($denied == FALSE && ($node = node_load($content['nid'])) && node_access('view', $node) == FALSE) {
+      if ($denied == FALSE && ($node = node_load($content['nid'])) && (node_access('view', $node) == FALSE || filefield_view_access($field_name, $node) == FALSE)) {
         // You don't have permission to view the node this file is attached to.
         $denied = TRUE;
       }
@@ -459,8 +459,8 @@
  * us to check, so we can make sure that the user may actually edit the file.
  */
 function filefield_edit_access($field_name) {
-  if (module_exists('content_permissions')) {
-    return user_access('edit '. $field_name);
+  if (!content_access('edit', content_fields($field_name))) {
+    return FALSE;
   }
   // No content permissions to check, so let's fall back to a more general permission.
   return user_access('access content');
@@ -469,9 +469,9 @@
 /**
  * Access callback that checks if the current user may view the filefield.
  */
-function filefield_view_access($field_name) {
-  if (module_exists('content_permissions')) {
-    return user_access('view '. $field_name);
+function filefield_view_access($field_name, $node=NULL) {
+  if (!content_access('view', content_fields($field_name), NULL, $node)) {
+    return FALSE;
   }
   // No content permissions to check, so let's fall back to a more general permission.
   return user_access('access content');

