diff --git a/nodereview.info b/nodereview.info
index 0968439..55675ab 100755
--- a/nodereview.info
+++ b/nodereview.info
@@ -10,6 +10,7 @@ dependencies[] = views
 
 configure = admin/config/nodereview/types
 
+files[] = views/nodereview.access_plugin.inc
 files[] = views/nodereview.views.inc
 files[] = views/nodereview.views_default.inc
 files[] = views/nodereview_count_reviews_views_handler_field.inc
diff --git a/nodereview.module b/nodereview.module
index f65b26f..7d8aee8 100755
--- a/nodereview.module
+++ b/nodereview.module
@@ -120,18 +120,6 @@ function nodereview_menu() {
     }
   }
 
-  $items['node/%/reviews'] = array(
-    'title' => 'Reviews',
-    'page callback' => 'views_page',
-    'page arguments' => array('review_list', 'page_1', 1),
-    'access callback' => 'read_reviews_access',
-    'access arguments' => array(1),
-    'file' => 'views.module',
-    'file path' => drupal_get_path('module', 'views'),
-    'type' => MENU_LOCAL_TASK,
-    'weight' => 2,
-  );
-
   $items['node/%node_add_review/addreview'] = array(
     'title callback' => 'nodereview_add_review_title',
     'page callback' => 'nodereview_node_add_form',
@@ -503,3 +491,19 @@ function nodereview_user_has_review($nid, $uid) {
   $result = $query->execute()->fetchField();
   return !empty($result);
 }
+
+/**
+ * Implements hook_views_plugins().
+ */
+function nodereview_views_plugins() {
+  $plugin = array(
+    'access' => array(
+      'nodereview' => array(
+        'title' => t('Node Review'),
+        'help' => t('This will check if the node can be reviewed.'),
+        'handler' => 'nodereview_access_plugin',
+      )
+    )
+  );
+  return $plugin;
+}
diff --git a/views/nodereview.access_plugin.inc b/views/nodereview.access_plugin.inc
new file mode 100644
index 0000000..8a6956f
--- /dev/null
+++ b/views/nodereview.access_plugin.inc
@@ -0,0 +1,24 @@
+<?php
+
+/**
+ * @file
+ * Contains a views plugin to provide module specific access of a view.
+ */
+
+/**
+ * The plugin access class
+ */
+class nodereview_access_plugin extends views_plugin_access {
+
+  /**
+   * Simulate the access callback provided by hook_menu.
+   */
+  function get_access_callback() {
+    return array(
+      'nodereview_read_access',
+      array(
+        arg(1),
+      ),
+    );
+  }
+}
diff --git a/views/nodereview.views_default.inc b/views/nodereview.views_default.inc
index 4196b6d..1bab1aa 100644
--- a/views/nodereview.views_default.inc
+++ b/views/nodereview.views_default.inc
@@ -22,7 +22,7 @@ function nodereview_views_default_views() {
   /* Display: Defaults */
   $handler = $view->new_display('default', 'Defaults', 'default');
   $handler->display->display_options['title'] = 'Reviews';
-  $handler->display->display_options['access']['type'] = 'none';
+  $handler->display->display_options['access']['type'] = 'nodereview';
   $handler->display->display_options['cache']['type'] = 'none';
   $handler->display->display_options['query']['type'] = 'views_query';
   $handler->display->display_options['query']['options']['query_comment'] = FALSE;
