diff --git a/vud_node/vud_node.module b/vud_node/vud_node.module
index e4b91b4..e70cdbb 100644
--- a/vud_node/vud_node.module
+++ b/vud_node/vud_node.module
@@ -143,14 +143,9 @@ function vud_node_vud_widget_message_codes_alter(&$widget_message_codes) {
  */
 function vud_node_node_view($node, $view_mode, $langcode) {
   // avoid showing the widget in some node builds
-  $exclude_modes = array(
-    NODE_BUILD_PREVIEW,
-    NODE_BUILD_SEARCH_INDEX,
-    NODE_BUILD_SEARCH_RESULT,
-    NODE_BUILD_RSS,
-  );
-  if (in_array($node->build_mode, $exclude_modes)) {
-    break;
+  if ((isset($node->in_preview) && $node->in_preview) || $view_mode == 'search_index'
+    || $view_mode == 'search_result' || $view_mode == 'rss') {
+    return;
   }
   if (($can_edit=user_access('use vote up/down on nodes')) || user_access('view vote up/down count on nodes')) {
     $node_type = in_array($node->type, variable_get('vud_node_types', array()), TRUE);
@@ -158,7 +153,6 @@ function vud_node_node_view($node, $view_mode, $langcode) {
     $tag = variable_get('vud_tag', 'vote');
     $widget = variable_get('vud_node_widget', 'plain');
     $vote_on_teaser = (bool)variable_get('vud_node_widget_vote_on_teaser', TRUE);
-    $teaser = $a3;
 
     $widget_message_code = VUD_WIDGET_MESSAGE_ERROR;
     if (!$can_edit) {
@@ -168,6 +162,10 @@ function vud_node_node_view($node, $view_mode, $langcode) {
       $widget_message_code = VUD_NODE_WIDGET_MESSAGE_TEASER_DENIED;
     }
 
+    $teaser = 0;
+    if ($view_mode == 'teaser') {
+      $teaser = 1;
+    }
     if ($node_type) {
 
       switch ($widget_showmode) {
diff --git a/vud_term/vud_term.module b/vud_term/vud_term.module
index ebd81a1..2a5e845 100644
--- a/vud_term/vud_term.module
+++ b/vud_term/vud_term.module
@@ -79,7 +79,10 @@ function vud_term_node_view($node, $view_mode, $langcode) {
   if (user_access('use vote up/down on terms')) {
     $node_type = in_array($node->type, variable_get('vud_term_types', array()), TRUE);
     $showmode  = variable_get('vud_term_votetable_show', 1);
-    $teaser = $a3;
+    $teaser = 0;
+    if ($view_mode == 'teaser') {
+      $teaser = 1;
+    }
     if ($node_type) {
       switch ($showmode) {
         case 0:
