diff --git a/modules/field/field.default.inc b/modules/field/field.default.inc
index cb49bdb..2b0ed94 100644
--- a/modules/field/field.default.inc
+++ b/modules/field/field.default.inc
@@ -86,9 +86,18 @@ function field_default_validate($entity_type, $entity, $field, $instance, $langc
   }
 }
 
+/**
+ * Default field 'submit' operation.
+ *
+ * Filter out empty values and sort the remainder in preparation for insert, below.
+ */
 function field_default_submit($entity_type, $entity, $field, $instance, $langcode, &$items, $form, &$form_state) {
-  // Filter out empty values.
-  $items = _field_filter_items($field, $items);
+  // Empty values are okay for setting default values so we want to avoid
+  // calling _field_filter_items(). Example: set a default text-format.
+  if (!empty($entity)){
+    // Filter out empty values.
+    $items = _field_filter_items($field, $items);
+  }
   // Reorder items to account for drag-n-drop reordering.
   $items = _field_sort_items($field, $items);
 }
diff --git a/modules/field_ui/field_ui.test b/modules/field_ui/field_ui.test
index e09355b..963adc1 100644
--- a/modules/field_ui/field_ui.test
+++ b/modules/field_ui/field_ui.test
@@ -327,7 +327,7 @@ class FieldUIManageFieldsTestCase extends FieldUITestCase {
     $this->assertText("Saved $field_name configuration", 'The form was successfully submitted.');
     field_info_cache_clear();
     $instance = field_info_instance('node', $field_name, $this->type);
-    $this->assertEqual($instance['default_value'], NULL, 'The default value was correctly saved.');
+    $this->assertEqual($instance['default_value'], array(array('value' => '')), t('The default value was correctly saved.'));
   }
 
   /**
