diff --git a/node_view.inc b/node_view.inc
index b8a7e0c..7da020b 100644
--- a/node_view.inc
+++ b/node_view.inc
@@ -67,7 +67,20 @@ function page_manager_node_view_menu_alter(&$items, $task) {
     }
   }
 
-  // @todo override node revision handler as well?
+  // Override the node revision view handler for our purpose.
+  $callback = $items['node/%node/revisions/%vid/view']['page callback'];
+  if ($callback == 'node_show' || variable_get('page_manager_override_anyway', FALSE)) {
+    $items['node/%node/revisions/%vid/view']['page callback'] = 'page_manager_node_view_page';
+    $items['node/%node/revisions/%vid/view']['file path'] = $task['path'];
+    $items['node/%node/revisions/%vid/view']['file'] = $task['file'];
+  }
+  else {
+    // automatically disable this task if it cannot be enabled.
+    variable_set('page_manager_node_view_disabled', TRUE);
+    if (!empty($GLOBALS['page_manager_enabling_node_view'])) {
+      drupal_set_message(t('Page manager module is unable to enable node/%node/revisions/%vid/view because some other module already has overridden with %callback.', array('%callback' => $callback)), 'error');
+    }
+  }
 }
 
 /**
