diff --git a/includes/webform_mass_email.pages.inc b/includes/webform_mass_email.pages.inc
index 3879c30..7bd2cae 100644
--- a/includes/webform_mass_email.pages.inc
+++ b/includes/webform_mass_email.pages.inc
@@ -25,11 +25,6 @@ function webform_mass_email_form($form, $form_state, $node) {
   module_load_include('inc', 'webform', 'includes/webform.report');
   module_load_include('inc', 'webform', 'includes/webform.submissions');
 
-  // Build the form, output the webform results as a suffix.
-  $form = array(
-    '#suffix' => webform_results_table($node, 50),
-  );
-
   // Build the mass email form.
   $form['mass_mail'] = array(
     '#type' => 'fieldset',
@@ -86,14 +81,64 @@ function webform_mass_email_form($form, $form_state, $node) {
     '#type' => 'submit',
   );
 
+  $items_per_page = 50;
+  $submissions = webform_get_submissions($node->nid, null, $items_per_page);
+  $total_count = webform_get_submission_count($node->nid);
+  $pager_count = ceil($total_count/$items_per_page);
+  $options = array();
+  $header = array(
+    'sid' => '#',
+    'submitted' => t('Submitted'),
+    'user' => t('User'),
+    'ip_address' => t('IP Address'),
+  );
+  $component_headers = array();
+  foreach ($submissions as $submission) {
+    $row = array(
+      'sid' => l($submission->sid, 'node/' . $node->nid . '/submission/' . $submission->sid),
+      'submitted' => format_date($submission->submitted, 'short'),
+      'user' => theme('username', array('account' => $submission)),
+      'ip_address' => $submission->remote_addr,
+    );
+    foreach ($node->webform['components'] as $component) {
+      $data = isset($submission->data[$component['cid']]['value']) ? $submission->data[$component['cid']]['value'] : NULL;
+      $submission_output = webform_component_invoke($component['type'], 'table', $component, $data);
+      if ($submission_output !== NULL) {
+        $component_headers[$component['form_key']] = check_plain($component['name']);
+        $row[$component['form_key']] = $submission_output;
+      }
+    }
+    $options[$submission->sid] = $row;
+  }
+  if (!empty($component_headers)) {
+    $header = array_merge($header, $component_headers);
+  }
+  $form['table'] = array(
+    '#type' => 'tableselect',
+    '#header' => $header,
+    '#options' => $options,
+  );
+
+  $form['pager'] = array(
+    '#weight' => 50,
+    '#markup' => theme('pager', array('quantity' => $pager_count)),
+  );
+
   return $form;
 }
 
+
 /**
  * Create a table containing all submitted values for a webform node.
  */
 function webform_mass_email_form_submit($form, $form_state) {
   // Retrieve values from the form.
+  $sends = array();
+  foreach($form_state['values']['table'] as $sid => $send) {
+    if ($send) {
+      $sends[] = $sid;
+    }
+  }
   $submissions = $form_state['values']['submissions'];
   $email_component_cid = $form_state['values']['email_component'];
   $subject = $form_state['values']['subject'];
@@ -115,7 +160,8 @@ function webform_mass_email_form_submit($form, $form_state) {
   // Loop through the submissions, pick up submission id + email and
   // enqueue the request for the cron to fetch.
   $count = 0;
-  foreach ($submissions as $sid => $submission) {
+  foreach ($sends as $sid) {
+    $submission = $submissions[$sid];
     // Reset, store submission id.
     $queue_values['sid'] = $sid;
     $queue_values['email'] = '';
