Index: modules/filter/filter.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/filter/filter.admin.inc,v
retrieving revision 1.69
diff -u -p -r1.69 filter.admin.inc
--- modules/filter/filter.admin.inc	22 Oct 2010 16:36:14 -0000	1.69
+++ modules/filter/filter.admin.inc	20 Nov 2010 20:30:29 -0000
@@ -308,8 +308,8 @@ function filter_admin_format_form_submit
   // Remove unnecessary values.
   form_state_values_clean($form_state);
 
-  // Save text format.
-  $format = (object) $form_state['values'];
+  // Save text format. Use the original values for data that is not submitted.
+  $format = (object) ($form_state['values'] + get_object_vars($form_state['build_info']['args'][0]));
   $status = filter_format_save($format);
 
   // Save user permissions.
Index: modules/filter/filter.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/filter/filter.module,v
retrieving revision 1.358
diff -u -p -r1.358 filter.module
--- modules/filter/filter.module	31 Oct 2010 13:08:29 -0000	1.358
+++ modules/filter/filter.module	20 Nov 2010 20:30:31 -0000
@@ -175,6 +175,8 @@ function filter_format_load($format_id) 
  *   - 'name': The title of the text format.
  *   - 'weight': (optional) The weight of the text format, which controls its
  *     placement in text format lists. If omitted, the weight is set to 0.
+ *   - 'status': (optional) A boolean indicating whether the text format is
+ *     enabled. If omitted, the text format will be enabled.
  *   - 'filters': (optional) An associative, multi-dimensional array of filters
  *     assigned to the text format, keyed by the name of each filter and using
  *     the properties:
