diff --git a/modules/field/field.module b/modules/field/field.module
index 52faf35..d0ad368 100644
--- a/modules/field/field.module
+++ b/modules/field/field.module
@@ -486,6 +486,12 @@ function field_get_default_value($entity_type, $entity, $field, $instance, $lang
   }
   elseif (!empty($instance['default_value'])) {
     $items = $instance['default_value'];
+    $function = $field['module'] . '_field_load';
+    $ids = entity_extract_ids($entity_type, $entity);
+    $items_keyed = array($ids[0] => &$items);
+    if (function_exists($function)) {
+    	$function($entity_type, array($entity), $field, array($instance), $items_keyed, FIELD_LOAD_CURRENT);
+    }
   }
   return $items;
 }
diff --git a/modules/field_ui/field_ui.admin.inc b/modules/field_ui/field_ui.admin.inc
index 5c6f529..c57a184 100644
--- a/modules/field_ui/field_ui.admin.inc
+++ b/modules/field_ui/field_ui.admin.inc
@@ -2070,6 +2070,10 @@ function field_ui_field_edit_form_submit($form, &$form_state) {
     $items = array();
     field_default_extract_form_values(NULL, NULL, $field, $instance, LANGUAGE_NONE, $items, $element, $form_state);
     field_default_submit(NULL, NULL, $field, $instance, LANGUAGE_NONE, $items, $element, $form_state);
+    $function = $field['module'] . '_field_presave';
+    if (function_exists($function)) {
+      $function(NULL, NULL, $field, $instance, LANGUAGE_NONE, $items);
+    }
 
     $instance['default_value'] = $items ? $items : NULL;
   }
