--- modules/node/node.module.orig	2007-02-24 01:28:14.000000000 +0000
+++ modules/node/node.module	2007-02-24 03:57:00.000000000 +0000
@@ -2667,6 +2667,18 @@ function node_access($op, $node = NULL) 
     return $access;
   }
 
+  // Now allow other modules to have their say on access to this node
+  $results = node_invoke_nodeapi($node, 'access', $op);
+  // The first module that actually returns a value takes precidence over
+  // all the others.
+  foreach ($results as $access) {
+    // node_invoke_nodeapi shouldn't even put NULL in it's results, but
+    // we should check because it's pretty important to get this right
+    if (!is_null($access)) {
+      return $access;
+    }
+  }
+
   // If the module did not override the access rights, use those set in the
   // node_access table.
   if ($op != 'create' && $node->nid && $node->status) {
