diff --git a/includes/webform.report.inc b/includes/webform.report.inc
index 2f1ebb8..4d28b2d 100644
--- a/includes/webform.report.inc
+++ b/includes/webform.report.inc
@@ -498,8 +498,9 @@ function webform_results_download_form_submit(&$form, &$form_state) {
     'select_format' => $form_state['values']['select_format'],
     'range_type' => $form_state['values']['range_type'],
     'sids' => $sids,
+    'download' => TRUE,
   );
-  webform_results_download($form_state['values']['node'], $form_state['values']['format'], $options);
+  webform_results_export($form_state['values']['node'], $form_state['values']['format'], $options);
 }
 
 /**
@@ -590,7 +591,7 @@ function theme_webform_results_download_select_format($element) {
  *   27 Feb 2005       ,1035,56 ,212   ,X         ,        ,        ,..,       ,X          ,X       ,X       ,..,X       ,How is this?
  *
  */
-function webform_results_download($node, $format = 'delimited', $options = array()) {
+function webform_results_export($node, $format = 'delimited', $options = array()) {
   global $user;
   module_load_include('inc', 'webform', 'includes/webform.export');
   module_load_include('inc', 'webform', 'includes/webform.components');
@@ -613,6 +614,7 @@ function webform_results_download($node, $format = 'delimited', $options = array
       'select_display' => 'value',
       'select_format' => 'separate',
       'range_type' => 0,
+      'download' => TRUE,
     );
     $fake_state = array('values' => array('node' => $node->nid, 'range_type' => 1));
     $options['sids'] = webform_download_sids($fake_state);
@@ -724,6 +726,11 @@ function webform_results_download($node, $format = 'delimited', $options = array
   // Close the file.
   @fclose($handle);
 
+  // Don't download; simply return the filename.
+  if (!$options['download']) {
+    return $file_name;
+  }
+
   $export_name = _webform_safe_name($node->title);
   $exporter->set_headers($export_name);
   @readfile($file_name);  // The @ makes it silent.
