Index: components/textfield.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/webform/components/textfield.inc,v
retrieving revision 1.12.2.1
diff -u -r1.12.2.1 textfield.inc
--- components/textfield.inc	2 Apr 2008 04:05:12 -0000	1.12.2.1
+++ components/textfield.inc	28 May 2008 05:16:35 -0000
@@ -78,6 +78,13 @@
     $form_item['#maxlength'] = $component['extra']['maxlength'];
   }
 
+  // Set a hard-coded value if the form element is disabled.
+  // Some browsers (i.e. Firefox) will not send any data from a disabled form
+  // element on the page, so using #value will let Drupal re-insert the value.
+  if ($form_item['#disabled']) {
+    $form_item['#value'] = $form_item['#default_value'];
+  }
+
   return $form_item;
 }
 
@@ -97,6 +104,9 @@
   $form_item = _webform_render_textfield($component);
   $form_item['#default_value'] = $data['value']['0'];
   $form_item['#disabled'] = !$enabled;
+  if ($form_item['#disabled']) {
+    $form_item['#value'] = $form_item['#default_value'];
+  }
   return $form_item;
 }
 
Index: components/textarea.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/webform/components/textarea.inc,v
retrieving revision 1.12.2.2
diff -u -r1.12.2.2 textarea.inc
--- components/textarea.inc	27 May 2008 16:31:14 -0000	1.12.2.2
+++ components/textarea.inc	28 May 2008 05:16:35 -0000
@@ -71,6 +71,13 @@
     '#suffix'        => '</div>',
   );
 
+  // Set a hard-coded value if the form element is disabled.
+  // Some browsers (i.e. Firefox) will not send any data from a disabled form
+  // element on the page, so using #value will let Drupal re-insert the value.
+  if ($form_item['#disabled']) {
+    $form_item['#value'] = $form_item['#default_value'];
+  }
+
   return $form_item;
 }
 
@@ -90,6 +97,9 @@
   $form_item = _webform_render_textarea($component);
   $form_item['#default_value'] = $data['value']['0'];
   $form_item['#disabled'] = !$enabled;
+  if ($form_item['#disabled']) {
+    $form_item['#value'] = $form_item['#default_value'];
+  }
   return $form_item;
 }
 
Index: components/email.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/webform/components/email.inc,v
retrieving revision 1.19.2.3
diff -u -r1.19.2.3 email.inc
--- components/email.inc	2 Apr 2008 04:05:12 -0000	1.19.2.3
+++ components/email.inc	28 May 2008 05:16:34 -0000
@@ -97,6 +97,13 @@
     $form_item['#size'] = $component['extra']['width'];
   }
 
+  // Set a hard-coded value if the form element is disabled.
+  // Some browsers (i.e. Firefox) will not send any data from a disabled form
+  // element on the page, so using #value will let Drupal re-insert the value.
+  if ($form_item['#disabled']) {
+    $form_item['#value'] = $form_item['#default_value'];
+  }
+
   return $form_item;
 }
 
@@ -133,6 +140,9 @@
   $form_item = _webform_render_email($component);
   $form_item['#default_value'] = $data['value']['0'];
   $form_item['#disabled'] = !$enabled;
+  if ($form_item['#disabled']) {
+    $form_item['#value'] = $form_item['#default_value'];
+  }
   return $form_item;
 }
 
Index: webform.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/webform/webform.module,v
retrieving revision 1.124.2.26
diff -u -r1.124.2.26 webform.module
--- webform.module	28 May 2008 02:55:04 -0000	1.124.2.26
+++ webform.module	28 May 2008 05:16:34 -0000
@@ -1491,22 +1491,14 @@
       $parent_fieldset[$component['form_key']] = $display_function(empty($submission) ? NULL : $submission['data'][$cid], $component, $enabled);
     }
   }
-  else if ($component['page_num'] == $page_num) {
+  elseif ($component['page_num'] == $page_num) {
     // Add this user-defined field to the form (with all the values that are always available).
-    if ($enabled) {
-      $display_function = "_webform_submission_display_". $component['type'];
-      if (function_exists($display_function)) {
-        $parent_fieldset[$component['form_key']] = $display_function($submission['data'][$cid], $component, $enabled);
-      }
+    $render_function = "_webform_render_". $component['type'];
+    if (function_exists($render_function)) {
+      $parent_fieldset[$component['form_key']] = $render_function($component); // Call the component render function.
     }
     else {
-      $render_function = "_webform_render_". $component['type'];
-      if (function_exists($render_function)) {
-        $parent_fieldset[$component['form_key']] = $render_function($component); // Call the component render function.
-      }
-      else {
-        drupal_set_message(t("The webform component @type is not able to be displayed", array('@type' => $component['type'])));
-      }
+      drupal_set_message(t("The webform component @type is not able to be displayed", array('@type' => $component['type'])));
     }
   }
   if (isset($component['children']) && is_array($component['children'])) {
