diff --git a/print.module b/print.module
index 1adffb0..99eeab5 100644
--- a/print.module
+++ b/print.module
@@ -249,6 +249,16 @@ function print_menu() {
 }
 
 /**
+ * Helper function to call node's access callback.
+ *
+ * @see node_access()
+ */
+function print_delegate_node_access($op, $node) {
+  $menu_item = menu_get_item("node/$node->nid");
+  return $menu_item['access_callback']($op, $node);
+}
+
+/**
  * Implements hook_block_info().
  */
 function print_block_info() {
@@ -268,7 +278,7 @@ function print_block_view($delta = '') {
       $nid = preg_replace('!^node/!', '', $_GET['q']);
       if (ctype_digit($nid)) {
         $node = node_load($nid);
-        if (!node_access('view', $node)) {
+        if (!print_delegate_node_access('view', $node)) {
           // If the user doesn't have access to the node, don't show any links
           $block['content'] = '';
           return;
diff --git a/print.pages.inc b/print.pages.inc
index a7bd734..8fcaf87 100644
--- a/print.pages.inc
+++ b/print.pages.inc
@@ -524,7 +524,7 @@ function _print_generate_node($nid, $query = NULL, $cid = NULL, $format = PRINT_
     drupal_not_found();
     return FALSE;
   }
-  elseif (!node_access('view', $node)) {
+  elseif (!print_delegate_node_access('view', $node)) {
     // Access is denied
     drupal_access_denied();
     return FALSE;
@@ -711,7 +711,7 @@ function _print_generate_book($nid, $query = NULL, $format = PRINT_HTML_FORMAT,
     drupal_not_found();
     return FALSE;
   }
-  elseif (!node_access('view', $node) || (!user_access('access printer-friendly version'))) {
+  elseif (!print_delegate_node_access('view', $node) || (!user_access('access printer-friendly version'))) {
     // Access is denied
     drupal_access_denied();
     return FALSE;
