Index: modules/simpletest/tests/field_test.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/simpletest/tests/field_test.module,v
retrieving revision 1.9
diff -u -r1.9 field_test.module
--- modules/simpletest/tests/field_test.module	27 May 2009 18:34:00 -0000	1.9
+++ modules/simpletest/tests/field_test.module	18 Jun 2009 16:52:39 -0000
@@ -365,6 +365,27 @@
   );
 }
 
+function field_test_memorize($tag = NULL, $args = NULL) {
+  $memorize =& drupal_static(__FUNCTION__, NULL);
+
+  if (is_null($tag)) {
+    $ret = $memorize;
+    $memorize = array();
+    return $ret;
+  }
+  if (is_array($memorize)) {
+    $memorize[$tag][] = $args;
+  }
+}
+
+/**
+ * Memorize calls to hook_field_create_field().
+ */
+function field_test_field_create_field($field) {
+  $args = func_get_args();
+  field_test_memorize(__FUNCTION__, $args);
+}
+
 /**
  * Implement hook_field_validate().
  *
Index: modules/field/field.crud.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/field/field.crud.inc,v
retrieving revision 1.15
diff -u -r1.15 field.crud.inc
--- modules/field/field.crud.inc	12 Jun 2009 08:39:36 -0000	1.15
+++ modules/field/field.crud.inc	18 Jun 2009 16:52:38 -0000
@@ -275,6 +275,9 @@
   // Clear caches
   field_cache_clear(TRUE);
 
+  // Invoke external hooks after the cache is cleared for API consistency.
+  module_invoke_all('field_create_field', $field);
+  
   return $field;
 }
 
Index: modules/field/field.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/field/field.test,v
retrieving revision 1.27
diff -u -r1.27 field.test
--- modules/field/field.test	16 Jun 2009 08:40:18 -0000	1.27
+++ modules/field/field.test	18 Jun 2009 16:52:39 -0000
@@ -1336,8 +1336,10 @@
       'field_name' => 'field_2',
       'type' => 'test_field',
     );
+    field_test_memorize();
     $field_definition = field_create_field($field_definition);
-
+    $mem = field_test_memorize();
+    $this->assertEqual(count($mem['field_test_field_create_field']), 1, 'Called hook_field_create_field() in successful field_create_field() call.');
     $field = field_read_field($field_definition['field_name']);
 
     // Ensure that basic properties are preserved.
