diff --git a/core/modules/contact/contact.module b/core/modules/contact/contact.module
index a45e97dab287b6d7d4ff28a821808e9fef661a0a..49570527580c0e20df257444bf9407296ce2d65b 100644
--- a/core/modules/contact/contact.module
+++ b/core/modules/contact/contact.module
@@ -236,6 +236,12 @@ function contact_field_extra_fields() {
       'weight' => 0,
     );
   }
+
+  $fields['user']['user']['form']['contact'] = array(
+    'label' => t('Contact settings'),
+    'description' => t('Contact module form element.'),
+    'weight' => 5,
+  );
   return $fields;
 }
 
diff --git a/core/modules/overlay/overlay.module b/core/modules/overlay/overlay.module
index 1893a15a1d3b4a484f66dbb4cf6512234ee600db..cc29255ca8ec4b7a2d4268f08e64b37515c43106 100644
--- a/core/modules/overlay/overlay.module
+++ b/core/modules/overlay/overlay.module
@@ -81,6 +81,18 @@ function overlay_theme() {
   );
 }
 
+/**
+ * Implements hook_field_extra_fields().
+ */
+function overlay_field_extra_fields() {
+  $fields['user']['user']['form']['overlay_control'] = array(
+    'label' => t('Administrative overlay'),
+    'description' => t('Overlay module form element.'),
+    'weight' => 4,
+  );
+  return $fields;
+}
+
 /**
  * Implements hook_form_FORM_ID_alter().
  */
diff --git a/core/modules/user/user.module b/core/modules/user/user.module
index 89015341869cd5de9ed8ca06f831288dc7814ac6..f2747c7886d8722bb5e2fa650f72e53cf84fc619 100644
--- a/core/modules/user/user.module
+++ b/core/modules/user/user.module
@@ -235,29 +235,38 @@ function user_field_info_alter(&$info) {
  * Implements hook_field_extra_fields().
  */
 function user_field_extra_fields() {
-  $return['user']['user'] = array(
-    'form' => array(
-      'account' => array(
-        'label' => t('User name and password'),
-        'description' => t('User module account form elements.'),
-        'weight' => -10,
-      ),
-      'timezone' => array(
-        'label' => t('Timezone'),
-        'description' => t('User module timezone form element.'),
-        'weight' => 6,
-      ),
-    ),
-    'display' => array(
-      'member_for' => array(
-        'label' => t('Member for'),
-        'description' => t('User module \'member for\' view element.'),
-        'weight' => 5,
-      ),
-    ),
+  $fields['user']['user']['form']['account'] = array(
+    'label' => t('User name and password'),
+    'description' => t('User module account form elements.'),
+    'weight' => -10,
+  );
+  if (config('user.settings')->get('signatures')) {
+    $fields['user']['user']['form']['signature_settings'] = array(
+      'label' => t('Signature settings'),
+      'description' => t('User module form element.'),
+      'weight' => 1,
+    );
+  }
+  $fields['user']['user']['form']['language'] = array(
+    'label' => t('Language settings'),
+    'description' => t('User module form element.'),
+    'weight' => 0,
+  );
+  if (config('system.timezone')->get('user.configurable')) {
+    $fields['user']['user']['form']['timezone'] = array(
+      'label' => t('Timezone'),
+      'description' => t('System module form element.'),
+      'weight' => 6,
+    );
+  }
+
+  $fields['user']['user']['display']['member_for'] = array(
+    'label' => t('Member for'),
+    'description' => t('User module \'member for\' view element.'),
+    'weight' => 5,
   );
 
-  return $return;
+  return $fields;
 }
 
 /**