Index: modules/node.views.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/views/modules/node.views.inc,v
retrieving revision 1.91
diff -u -r1.91 node.views.inc
--- modules/node.views.inc	2 Dec 2008 22:17:41 -0000	1.91
+++ modules/node.views.inc	30 Jan 2009 13:15:28 -0000
@@ -670,12 +670,21 @@
 
   $node = node_load($nid);
   $node->view = $vars['view'];
+  // Handle existing views with deprecated 'teaser' option.
+  if (isset($options['teaser'])) {
+    $teaser = $options['teaser'];
+    $build_mode = NODE_BUILD_NORMAL;
+  }
+  else {
+    $teaser = $options['build_mode'] == 'teaser' ? TRUE : FALSE;
+    $build_mode = ($options['build_mode'] == 'teaser' || $options['build_mode'] == 'full') ? NODE_BUILD_NORMAL : $options['build_mode'];
+  }
+  $node->build_mode = $build_mode;
 
   if (empty($node)) {
     return;
   }
-
-  $vars['node'] = node_view($node, $options['teaser'], FALSE, $options['links']);
+  $vars['node'] = node_view($node, $teaser, FALSE, $options['links']);
   $vars['comments'] = NULL;
   if (!empty($options['comments']) && function_exists('comment_render')) {
     $vars['comments'] = comment_render($node);
Index: modules/node/views_plugin_row_node_view.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/views/modules/node/views_plugin_row_node_view.inc,v
retrieving revision 1.1
diff -u -r1.1 views_plugin_row_node_view.inc
--- modules/node/views_plugin_row_node_view.inc	3 Sep 2008 19:21:29 -0000	1.1
+++ modules/node/views_plugin_row_node_view.inc	30 Jan 2009 13:39:35 -0000
@@ -15,6 +15,7 @@
     $options = parent::option_definition();
 
     $options['teaser'] = array('default' => TRUE);
+    $options['build_mode'] = array('default' => 'teaser');
     $options['links'] = array('default' => TRUE);
     $options['comments'] = array('default' => FALSE);
 
@@ -22,10 +23,36 @@
   }
 
   function options_form(&$form, &$form_state) {
-    $form['teaser'] = array(
-      '#type' => 'checkbox',
-      '#title' => t('Display only teaser'),
-      '#default_value' => $this->options['teaser'],
+
+    $options = array(
+      'teaser' => t('Teaser'),
+      'full' => t('Full node')
+    );
+
+    // If CCK exists - use its build modes registry.
+    if (module_exists('content')) {
+      // Get all available build modes.
+      $modes = content_build_modes();
+      foreach ($modes as $key => $value) {
+        if (isset($value['views style']) && $value['views style']) {
+          $options[$key] = $value['title'];
+        }
+      }
+    }
+
+    // Handle existing views with deprecated 'teaser' option.
+    if (isset($this->options['teaser'])) {
+      $default = $this->options['teaser'] ? 'teaser' : 'full';
+    }
+    else {
+      $default = $this->options['build_mode'];
+    }
+
+    $form['build_mode'] = array(
+      '#type' => 'select',
+      '#options' => $options,
+      '#title' => t('Build mode'),
+      '#default_value' => $default,
     );
     $form['links'] = array(
       '#type' => 'checkbox',
