diff --git vud_comment/views/vud_comment.views.inc vud_comment/views/vud_comment.views.inc
new file mode 100644
index 0000000..7deca07
--- /dev/null
+++ vud_comment/views/vud_comment.views.inc
@@ -0,0 +1,32 @@
+<?php
+// $Id$
+
+/**
+ * Implementation of hook_views_data_alter().
+ */
+function vud_comment_views_data_alter(&$data) {
+  $data['comments']['vud_comment_widget'] = array(
+    'group' => t('Vote Up/Down'),
+    'title' => t('Comment Widget'),
+    'help' => t('Provide a comment widget for the Vote up/Down module.'),
+    'field' => array(
+      'handler' => 'vud_comment_handler_field_widget',
+    ),
+  );
+}
+
+/**
+ * Implementation of hook_views_handlers().
+ */
+function vud_comment_views_handlers() {
+  return array(
+    'info' => array(
+      'path' => drupal_get_path('module', 'vud_comment') . '/views'
+    ),
+    'handlers' => array(
+      'vud_comment_handler_field_widget' => array(
+        'parent' => 'views_handler_field',
+      ),
+    ),
+  );
+}
diff --git vud_comment/views/vud_comment_handler_field_widget.inc vud_comment/views/vud_comment_handler_field_widget.inc
new file mode 100644
index 0000000..b2fbbe3
--- /dev/null
+++ vud_comment/views/vud_comment_handler_field_widget.inc
@@ -0,0 +1,37 @@
+<?php
+// $Id$
+
+/**
+ * A handler that provides a Vote Up/Down widget field for nodes.
+ */
+class vud_comment_handler_field_widget extends views_handler_field {
+  function query() {
+    // We have to override the parent here, because we don't want
+    // to do anything.
+  }
+
+  function option_definition() {
+    $options = parent::option_definition();
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    // It doesn't make sense to have the ability to alter the output.
+    $form['alter']['#access'] = FALSE;
+  }
+
+  function render($values) {
+    $widget = '';
+    $query = 'SELECT n.type FROM {comments} c LEFT JOIN {node} n ON c.nid = n.nid WHERE c.cid = %d';
+    $type = db_result(db_query($query, $values->cid));
+    $comment_allow = in_array($type, variable_get('vud_comment_node_types', array()), TRUE);
+    if ($comment_allow && user_access('use vote up/down on comments')) {
+      $tag = variable_get('vud_tag', 'vote');
+      $widget_type = variable_get('vud_comment_widget', 'plain');
+      $widget = theme('vud_widget', $values->cid, 'comment', $tag, $widget_type);
+    }
+
+    return $widget;
+  }
+}
diff --git vud_comment/vud_comment.module vud_comment/vud_comment.module
index 6235f59..9c50599 100644
--- vud_comment/vud_comment.module
+++ vud_comment/vud_comment.module
@@ -199,3 +199,13 @@ function vud_comment_link($type, $object, $teaser = FALSE) {
   }
   return $links;
 }
+
+/**
+ * Implementation of hook_views_api().
+ */
+function vud_comment_views_api() {
+  return array(
+    'api' => 2,
+    'path' => drupal_get_path('module', 'vud_comment') . '/views',
+  );
+}
diff --git vud_node/views/vud_node.views.inc vud_node/views/vud_node.views.inc
new file mode 100644
index 0000000..5eb74d0
--- /dev/null
+++ vud_node/views/vud_node.views.inc
@@ -0,0 +1,32 @@
+<?php
+// $Id$
+
+/**
+ * Implementation of hook_views_data_alter().
+ */
+function vud_node_views_data_alter(&$data) {
+  $data['node']['vud_node_widget'] = array(
+    'group' => t('Vote Up/Down'),
+    'title' => t('Node Widget'),
+    'help' => t('Provide a node widget for the Vote up/Down module.'),
+    'field' => array(
+      'handler' => 'vud_node_handler_field_widget',
+    ),
+  );
+}
+
+/**
+ * Implementation of hook_views_handlers().
+ */
+function vud_node_views_handlers() {
+  return array(
+    'info' => array(
+      'path' => drupal_get_path('module', 'vud_node') . '/views'
+    ),
+    'handlers' => array(
+      'vud_node_handler_field_widget' => array(
+        'parent' => 'views_handler_field',
+      ),
+    ),
+  );
+}
diff --git vud_node/views/vud_node_handler_field_widget.inc vud_node/views/vud_node_handler_field_widget.inc
new file mode 100644
index 0000000..87c2d69
--- /dev/null
+++ vud_node/views/vud_node_handler_field_widget.inc
@@ -0,0 +1,42 @@
+<?php
+// $Id$
+
+/**
+ * A handler that provides a Vote Up/Down widget field for nodes.
+ */
+class vud_node_handler_field_widget extends views_handler_field {
+  function query() {
+    // We have to override the parent here, because we don't want
+    // to do anything.
+  }
+
+  function option_definition() {
+    $options = parent::option_definition();
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    // It doesn't make sense to have the ability to alter the output.
+    $form['alter']['#access'] = FALSE;
+  }
+
+  function render($values) {
+    $widget = '';
+    if (($can_edit = user_access('use vote up/down on nodes')) || user_access('view vote up/down count on nodes')) {
+      $nid = $values->nid;
+      $type = db_result(db_query("SELECT type FROM {node} WHERE nid = '%d'", $nid));
+      $valid_type = in_array($type, variable_get('vud_node_types', array()), TRUE);
+
+      if ($valid_type) {
+        $tag = variable_get('vud_tag', 'vote');
+        $widget_type = variable_get('vud_node_widget', 'plain');
+        $widget_message_code = (!$can_edit) ? VUD_WIDGET_MESSAGE_DENIED : VUD_WIDGET_MESSAGE_ERROR;
+
+        $widget = theme(vud_theme_functions('vud_widget', 'node', $nid), $nid, 'node', $tag, $widget_type, !$can_edit, $widget_message_code);
+      }
+    }
+
+    return $widget;
+  }
+}
diff --git vud_node/vud_node.module vud_node/vud_node.module
index 0c43bc0..65bd1a3 100644
--- vud_node/vud_node.module
+++ vud_node/vud_node.module
@@ -48,6 +48,16 @@ function vud_node_menu() {
 }
 
 /**
+ * Implementation of hook_views_api().
+ */
+function vud_node_views_api() {
+  return array(
+    'api' => 2,
+    'path' => drupal_get_path('module', 'vud_node') . '/views',
+  );
+}
+
+/**
  * Access Callback from hook_menu (vud_node_menu).
  */
 function vud_node_tab_view_stats($node) {
