diff --git a/modules/field/field.api.php b/modules/field/field.api.php
index 7af943d9ad68892975a3461e691d07a5da072e34..51489c28d0e0ceeb57fe190e4d8b63661f81ad10 100644
--- a/modules/field/field.api.php
+++ b/modules/field/field.api.php
@@ -28,6 +28,8 @@
  *   - weight: The default weight of the element.
  *   - view: (optional) The name of the element as it appears in the rendered
  *     structure, if different from the name in the form.
+ *
+ * @see hook_field_extra_fields_alter()
  */
 function hook_field_extra_fields() {
   $extra = array();
@@ -61,6 +63,23 @@ function hook_field_extra_fields() {
   return $extra;
 }
 
+/**
+ * Alter "pseudo-field" components on fieldable entities.
+ *
+ * @param $info
+ *   The associative array of 'pseudo-field' components.
+ *
+ * @see hook_field_extra_fields()
+ */
+function hook_field_extra_fields_alter(&$info) {
+  // Force node title to always be at the top of the list
+  // by default.
+  if (isset($info['title'])) {
+    $info['title']['weight'] = -20;
+  }
+
+}
+
 /**
  * @} End of "ingroup field_fieldable_type"
  */