diff --git a/webform_view.inc b/webform_view.inc
index df79f64..feb5869 100644
--- a/webform_view.inc
+++ b/webform_view.inc
@@ -415,16 +415,16 @@ function _webform_csv_data_view($component, $export_options, $raw_value) {
  * The $value available here has been flattened and serialized
  * - unpack it before use.
  */
-function _webform_display_view($component, $value_serialized, $format = 'html', $sid = NULL) {
+function _webform_display_view($component, $value_serialized, $format = 'html', $submission = array()) {
   $value = array();
-  if ($sid !== NULL) {
-    // Looking at an already submitted form,
-    // we need to get some more data from the database.
+  if (!empty($submission)) {
     $node = node_load($component['nid']);
-    $sub = webform_get_submission($component['nid'], $sid);
-    foreach ($sub->data as $key => $val) {
+    $components = $node->webform['components'];
+    foreach ($submission->data as $key => $val) {
       // Only add non-component data.
-      if (!in_array($key, array_keys($node->webform['components']))) {
+      // In results, webform_view components will not be in the list, but
+      // during preview it's necessary to further check if nid is present
+      if (!(isset($components[$key]) && isset($components[$key]['nid']))) {
         $item = node_load($key);
 
         foreach ($val as $k => $v) {
@@ -434,13 +434,6 @@ function _webform_display_view($component, $value_serialized, $format = 'html',
       }
     }
   }
-  else {
-    foreach ($component['children'] as $key => $val) {
-      if (!isset($val['nid'])) {
-        $value[] = unserialize($val['value']);
-      }
-    }
-  }
 
   return array(
     '#title' => $component['name'],
diff --git a/webform_view.info b/webform_view.info
index 23ca324..94b11d6 100644
--- a/webform_view.info
+++ b/webform_view.info
@@ -1,8 +1,8 @@
 name = Webform View
 description = Allow webform submissions to have views embedded
 core = 7.x
-dependencies[] = webform
-dependencies[] = views
+dependencies[] = webform (>=7.x-4.10)
+dependencies[] = views (7.x-3.x)
 
 package = "Webform"
 
diff --git a/webform_view.module b/webform_view.module
index 46ce665..af552ed 100644
--- a/webform_view.module
+++ b/webform_view.module
@@ -100,6 +100,10 @@ function webform_view_form_webform_client_form_alter(&$form, $form_state, $form_
       $items = array();
       $first_field = NULL;
 
+      // Can clear out blank values here.
+      // eg 'quantity';
+      $required_key = $component['extra']['filter_field_id'];
+
       $inputs = $form_state['input']['submitted'];
       if (is_array($inputs[$form_key])) {
         foreach ($inputs[$form_key] as $nid => $values) {
@@ -122,22 +126,24 @@ function webform_view_form_webform_client_form_alter(&$form, $form_state, $form_
                 }
               }
             }
-            // This data structure enables the proper display
-            // of the embedded view inputs on preview
-            // and also stores the data in the webform_submitted_data table.
-            $form['#node']->webform['components'][$nid] = array(
-              'cid' => $nid,
-              'pid' => $component['cid'],
-              'form_key' => $nid,
-              'value' => serialize($val),
-            );
+            // If required key is set, then rows without it are skipped.
+            if (($required_key == '<none>') || !empty($val[$required_key])) {
+              // This data structure enables the proper storage of the data in
+              // the webform_submitted_data table.
+              $form['#node']->webform['components'][$nid] = array(
+                'cid' => $nid,
+                'pid' => $component['cid'],
+                'form_key' => $nid,
+                'value' => serialize($val),
+              );
 
-            $items[] = implode(', ', $val);
+              $items[] = implode(', ', $val);
+            }
           }
         }
       }
       // This stores a nice, text version to show in table view or CSV export.
-      if ($first_field !== NULL) {
+      if (($first_field !== NULL) && !empty($items)) {
         $form['submitted'][$form_key][$first_field]['#value'] = implode("\n", $items);
       }
     }
