diff --git a/webform.api.php b/webform.api.php
index 88e0a63..b3dd555 100644
--- a/webform.api.php
+++ b/webform.api.php
@@ -948,6 +948,8 @@ function hook_webform_component_render_alter(&$element, &$component) {
  *   Either 'html' or 'text'. Defines the format that the content should be
  *   returned as. Make sure that returned content is run through check_plain()
  *   or other filtering functions when returning HTML.
+ * @param $sid
+ *   ID of the submission being displayed. Set to NULL during preview.
  * @return
  *   A renderable element containing at the very least these properties:
  *    - #title
@@ -959,7 +961,7 @@ function hook_webform_component_render_alter(&$element, &$component) {
  *   which will properly format the label and content for use within an e-mail
  *   (such as wrapping the text) or as HTML (ensuring consistent output).
  */
-function _webform_display_component($component, $value, $format = 'html') {
+function _webform_display_component($component, $value, $format = 'html', $sid = NULL) {
   return array(
     '#title' => $component['name'],
     '#weight' => $component['weight'],
diff --git a/webform.module b/webform.module
index b117063..76c20fa 100644
--- a/webform.module
+++ b/webform.module
@@ -2739,7 +2739,8 @@ function _webform_client_form_add_component($node, $component, $component_value,
   if ($format != 'form') {
     // This component is display only.
     $data = empty($input_values[$cid]) ? NULL : $input_values[$cid];
-    if ($display_element = webform_component_invoke($component['type'], 'display', $component, $data, $format)) {
+    $sid = isset($parent_fieldset['#submission']) ? $parent_fieldset['#submission']->sid : NULL;
+    if ($display_element = webform_component_invoke($component['type'], 'display', $component, $data, $format, $sid)) {
       // Set access based on the private property.
       $display_element += array('#access' => TRUE);
       $display_element['#access'] = $display_element['#access'] && $component_access;
diff --git a/components/date.inc b/components/date.inc
index f84c2f2..558368e 100644
--- a/components/date.inc
+++ b/components/date.inc
@@ -462,7 +462,7 @@ function _webform_submit_date($component, $value) {
 /**
  * Implements _webform_display_component().
  */
-function _webform_display_date($component, $value, $format = 'html') {
+function _webform_display_date($component, $value, $format = 'html', $sid = NULL) {
   $value = webform_date_array(isset($value[0]) ? $value[0] : '', 'date');
 
   return array(
diff --git a/components/email.inc b/components/email.inc
index 133f24c..79e9880 100644
--- a/components/email.inc
+++ b/components/email.inc
@@ -264,7 +264,7 @@ function _webform_validate_email($form_element, &$form_state) {
 /**
  * Implements _webform_display_component().
  */
-function _webform_display_email($component, $value, $format = 'html') {
+function _webform_display_email($component, $value, $format = 'html', $sid = NULL) {
   return array(
     '#title' => $component['name'],
     '#title_display' => $component['extra']['title_display'] ? $component['extra']['title_display'] : 'before',
diff --git a/components/fieldset.inc b/components/fieldset.inc
index 8b43ae3..61ba447 100644
--- a/components/fieldset.inc
+++ b/components/fieldset.inc
@@ -82,7 +82,7 @@ function webform_fieldset_prerender($element) {
 /**
  * Implements _webform_display_component().
  */
-function _webform_display_fieldset($component, $value, $format = 'html') {
+function _webform_display_fieldset($component, $value, $format = 'html', $sid = NULL) {
   if ($format == 'text') {
     $element = array(
       '#title' => $component['name'],
diff --git a/components/file.inc b/components/file.inc
index 3d80d7a..a4f7e17 100644
--- a/components/file.inc
+++ b/components/file.inc
@@ -406,7 +406,7 @@ function webform_file_allow_access($element) {
 /**
  * Implements _webform_display_component().
  */
-function _webform_display_file($component, $value, $format = 'html') {
+function _webform_display_file($component, $value, $format = 'html', $sid = NULL) {
   $fid = isset($value[0]) ? $value[0] : NULL;
   return array(
     '#title' => $component['name'],
diff --git a/components/grid.inc b/components/grid.inc
index 60ae73a..bb5d184 100644
--- a/components/grid.inc
+++ b/components/grid.inc
@@ -264,7 +264,7 @@ function webform_expand_grid($element) {
 /**
  * Implements _webform_display_component().
  */
-function _webform_display_grid($component, $value, $format = 'html') {
+function _webform_display_grid($component, $value, $format = 'html', $sid = NULL) {
   $node = node_load($component['nid']);
   $questions = _webform_select_options_from_text($component['extra']['questions'], TRUE);
   $questions = _webform_select_replace_tokens($questions, $node);
diff --git a/components/hidden.inc b/components/hidden.inc
index 0740018..cbcca12 100644
--- a/components/hidden.inc
+++ b/components/hidden.inc
@@ -103,7 +103,7 @@ function _webform_render_hidden($component, $value = NULL, $filter = TRUE, $subm
 /**
  * Implements _webform_display_component().
  */
-function _webform_display_hidden($component, $value, $format = 'html') {
+function _webform_display_hidden($component, $value, $format = 'html', $sid = NULL) {
   $element = array(
     '#title' => $component['name'],
     '#markup' => isset($value[0]) ? $value[0] : NULL,
diff --git a/components/markup.inc b/components/markup.inc
index 6ceefb2..1bbdf77 100644
--- a/components/markup.inc
+++ b/components/markup.inc
@@ -99,7 +99,7 @@ function _webform_render_markup($component, $value = NULL, $filter = TRUE, $subm
 /**
  * Implements _webform_display_component().
  */
-function _webform_display_markup($component, $value, $format = 'html') {
+function _webform_display_markup($component, $value, $format = 'html', $sid = NULL) {
   $node = isset($component['nid']) ? node_load($component['nid']) : NULL;
 
   return array(
diff --git a/components/number.inc b/components/number.inc
index 6f90c36..4c28855 100644
--- a/components/number.inc
+++ b/components/number.inc
@@ -377,7 +377,7 @@ function _webform_render_number($component, $value = NULL, $filter = TRUE, $subm
 /**
  * Implements _webform_display_component().
  */
-function _webform_display_number($component, $value, $format = 'html') {
+function _webform_display_number($component, $value, $format = 'html', $sid = NULL) {
   $empty = !isset($value[0]) || $value[0] === '';
   return array(
     '#title' => $component['name'],
diff --git a/components/pagebreak.inc b/components/pagebreak.inc
index a02367d..9421e78 100644
--- a/components/pagebreak.inc
+++ b/components/pagebreak.inc
@@ -78,7 +78,7 @@ function _webform_render_pagebreak($component, $value = NULL, $filter = TRUE, $s
 /**
  * Implements _webform_display_component().
  */
-function _webform_display_pagebreak($component, $value = NULL, $format = 'html') {
+function _webform_display_pagebreak($component, $value = NULL, $format = 'html', $sid = NULL) {
   $element = array(
     '#theme' => 'webform_display_pagebreak',
     '#title' => $component['name'],
diff --git a/components/select.inc b/components/select.inc
index 318eb1e..ef998ca 100644
--- a/components/select.inc
+++ b/components/select.inc
@@ -488,7 +488,7 @@ function webform_expand_select_ids($element) {
 /**
  * Implements _webform_display_component().
  */
-function _webform_display_select($component, $value, $format = 'html') {
+function _webform_display_select($component, $value, $format = 'html', $sid = NULL) {
   // Sort values by numeric key. These may be in alphabetic order from the database query,
   // which is not numeric order for keys '10' and higher.
   $value = (array) $value;
diff --git a/components/textarea.inc b/components/textarea.inc
index 41d0f57..74b45cf 100644
--- a/components/textarea.inc
+++ b/components/textarea.inc
@@ -152,7 +152,7 @@ function _webform_render_textarea($component, $value = NULL, $filter = TRUE, $su
 /**
  * Implements _webform_display_component().
  */
-function _webform_display_textarea($component, $value, $format = 'html') {
+function _webform_display_textarea($component, $value, $format = 'html', $sid = NULL) {
   return array(
     '#title' => $component['name'],
     '#title_display' => $component['extra']['title_display'] ? $component['extra']['title_display'] : 'before',
diff --git a/components/textfield.inc b/components/textfield.inc
index 7ada5fc..9d55834 100644
--- a/components/textfield.inc
+++ b/components/textfield.inc
@@ -189,7 +189,7 @@ function _webform_render_textfield($component, $value = NULL, $filter = TRUE, $s
 /**
  * Implements _webform_display_component().
  */
-function _webform_display_textfield($component, $value, $format = 'html') {
+function _webform_display_textfield($component, $value, $format = 'html', $sid = NULL) {
   return array(
     '#title' => $component['name'],
     '#title_display' => $component['extra']['title_display'] ? $component['extra']['title_display'] : 'before',
diff --git a/components/time.inc b/components/time.inc
index 786dae5..7fa5aa1 100644
--- a/components/time.inc
+++ b/components/time.inc
@@ -365,7 +365,7 @@ function _webform_submit_time($component, $value) {
 /**
  * Implements _webform_display_component().
  */
-function _webform_display_time($component, $value, $format = 'html') {
+function _webform_display_time($component, $value, $format = 'html', $sid = NULL) {
   $value = webform_date_array(isset($value[0]) ? $value[0] : '', 'time');
   if ($component['extra']['hourformat'] == '12-hour') {
     $value = webform_time_convert($value, '12-hour');
