diff --git a/views/webform.views.inc b/views/webform.views.inc
index 189de18..e18910a 100644
--- a/views/webform.views.inc
+++ b/views/webform.views.inc
@@ -257,4 +257,23 @@ function webform_views_handlers() {
       ),
     ),
   );
-}
\ No newline at end of file
+}
+
+/**
+ * Implements hook_views_plugins().
+ */
+function webform_views_plugins() {
+  return array(
+    'row' => array(
+      'webform_submission' => array(
+        'title' => t('Webform Submission'),
+        'help' => t('Display the rendered submission'),
+        'handler' => 'webform_views_plugin_row_submission_view',
+        'base' => array('webform_submissions'),
+        'uses options' => TRUE,
+        'type' => 'normal',
+      )
+    )
+  );
+}
+
diff --git a/views/webform_plugin_row_submission_view.inc b/views/webform_plugin_row_submission_view.inc
new file mode 100644
index 0000000..423a3cc
--- /dev/null
+++ b/views/webform_plugin_row_submission_view.inc
@@ -0,0 +1,93 @@
+<?php
+
+/**
+ * @file
+ * Contains the submission view row style plugin.
+ */
+
+/**
+ * Plugin which performs a webform_submission_render on the resulting object.
+ *
+ * Most of the code on this object is in the theme function.
+ *
+ * @ingroup views_row_plugins
+ */
+class webform_views_plugin_row_submission_view extends views_plugin_row {
+  // Basic properties that let the row style follow relationships.
+  public $base_table = 'webform_submissions';
+  public $base_field = 'sid';
+
+  // Stores the nodes loaded with pre_render.
+  public $submissions = array();
+  public $nodes = array();
+
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['format'] = array('default' => 'html');
+
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+
+    $options = $this->options_form_summary_options();
+    $form['format'] = array(
+      '#type' => 'select',
+      '#options' => $options,
+      '#title' => t('Display mode'),
+      '#default_value' => $this->options['format'],
+    );
+  }
+
+  /**
+   * Return the main options, which are shown in the summary title.
+   */
+  function options_form_summary_options() {
+    return array(
+      'html' => t('HTML'),
+      'text' => t('Plain text'),
+    );
+  }
+
+  function summary_title() {
+    $options = $this->options_form_summary_options();
+    return check_plain($options[$this->options['format']]);
+  }
+
+  function pre_render($values) {
+    module_load_include('inc', 'webform', 'includes/webform.submissions');
+
+    $sids = array();
+    foreach ($values as $row) {
+      $sids[] = $row->{$this->field_alias};
+      $submissions = webform_get_submissions(array('sid' => $row->{$this->field_alias}));
+      $submission = $submissions[$row->sid];
+      $this->submissions[$row->{$this->field_alias}] = $submission;
+      if (! isset($nodes[$submission->nid])) {
+        $this->nodes[$submission->nid] = node_load($submission->nid);
+      }
+    }
+  }
+
+  function render($row) {
+    if (isset($this->submissions[$row->{$this->field_alias}])) {
+      $submission = $this->submissions[$row->{$this->field_alias}];
+
+      $submission->view = $this->view;
+      $node = $this->nodes[$submission->nid];
+      $build = webform_submission_render($node, $submission, NULL, $this->options['format']);
+
+      // Add extra theme functions:
+      $themes = array();
+      foreach ($build['#theme'] as $hook) {
+        $themes = array_merge($themes, _views_theme_functions($hook, $this->view, $this->view->display[$this->view->current_display]));
+      }
+      $build['#theme'] = $themes;
+
+      return drupal_render($build);
+    }
+  }
+}
+
diff --git a/webform.info b/webform.info
index 149b887..2207d5e 100644
--- a/webform.info
+++ b/webform.info
@@ -15,6 +15,7 @@ files[] = views/webform_handler_field_node_link_results.inc
 files[] = views/webform_handler_field_submission_count.inc
 files[] = views/webform_handler_field_submission_link.inc
 files[] = views/webform_handler_filter_is_draft.inc
+files[] = views/webform_plugin_row_submission_view.inc
 files[] = views/webform.views.inc
 
 files[] = tests/components.test
