diff --git a/tests/title.test b/tests/title.test
index c950305..0f8128b 100644
--- a/tests/title.test
+++ b/tests/title.test
@@ -146,4 +146,28 @@ class TitleFieldReplacementTestCase extends DrupalWebTestCase {
       }
     }
   }
+
+  /**
+   * Check for automated title_field attachment.
+   */
+  function testAutomatedFieldAttachement() {
+    $admin_user = $this->drupalCreateUser(array('administer content types'));
+    $this->drupalLogin($admin_user);
+
+    $edit = array();
+    $edit['title_auto_attach_node'] = 'checked';
+
+    $this->drupalPost('admin/config/content/title', $edit, t('Save configuration'));
+
+    // Taken from the original test for node type creation.
+    $edit = array();
+    $edit = array(
+      'name' => 'foo',
+      'title_label' => 'title for foo',
+      'type' => 'foo',
+    );
+    $this->drupalPost('admin/structure/types/add', $edit, t('Save content type'));
+
+    $this->assertText('The field title_field was attached automaticly to the node.');
+  }
 }
diff --git a/title.admin.inc b/title.admin.inc
index 3cc7d24..483f46b 100644
--- a/title.admin.inc
+++ b/title.admin.inc
@@ -74,3 +74,25 @@ function title_field_replacement_form_submit($form, &$form_state) {
   }
   $form_state['redirect'] = _field_ui_bundle_admin_path($form['#entity_type'], $form['#bundle']) . '/fields';
 }
+
+/**
+ * Form settings for automated title_field attachement.
+ */
+function title_auto_field_attach() {
+  foreach (entity_get_info() as $entity_type => $entity) {
+    if (empty($entity['field replacement'])) {
+      continue;
+    }
+
+    $form['title_auto_attach_' . $entity_type] = array(
+      '#title' => t('Auto attach @replacement-name for the @entity-name entity?', array(
+        '@entity-name' => $entity['label'],
+        '@replacement-name' => $entity['field replacement'][$entity['entity keys']['label']]['field']['field_name'],
+      )),
+      '#default_value' => variable_get('title_auto_attach_' . $entity_type, FALSE),
+      '#type' => 'checkbox',
+    );
+  }
+
+  return system_settings_form($form);
+}
diff --git a/title.install b/title.install
index 4dc4432..64445a8 100644
--- a/title.install
+++ b/title.install
@@ -6,7 +6,7 @@
  */
 
 /**
- * Helper function.
+ * Helper function for changing the module weight.
  */
 function _title_install_set_weight($weight) {
   db_update('system')
@@ -16,12 +16,35 @@ function _title_install_set_weight($weight) {
 }
 
 /**
+ * Helper function for remove/create variables.
+ */
+function _title_install_variables_handle($op) {
+  $entities = array();
+
+  foreach (array_keys(entity_get_info()) as $entity_type) {
+    if (empty($entity['field replacement'])) {
+      continue;
+    }
+
+    if ($op == 'install') {
+      variable_set('title_auto_attach_' . $entity_type, FALSE);
+    }
+    else if ($op == 'uninstall') {
+      variable_del('title_auto_attach_' . $entity_type);
+    }
+  }
+}
+
+/**
  * Implements hook_install().
  */
 function title_install() {
   // Make (reasonably) sure that title_module_implements_alter() is invoked as
   // last so we can determine the priority of our hook implementations reliably.
   _title_install_set_weight(100);
+
+  // Create module's variables.
+  _title_install_variables_handle('install');
 }
 
 /**
@@ -32,4 +55,15 @@ function title_install() {
  */
 function title_update_7001() {
   _title_install_set_weight(100);
+
+  // Create module's variables.
+  _title_install_variables_handle('install');
+}
+
+/**
+ * Implements hook_uninstall().
+ */
+function title_uninstall() {
+  // Remove module's variables.
+  _title_install_variables_handle('install');
 }
diff --git a/title.module b/title.module
index 8c7f078..9a06767 100644
--- a/title.module
+++ b/title.module
@@ -552,6 +552,15 @@ function title_menu() {
     }
   }
 
+  $items['admin/config/content/title'] = array(
+    'title' => 'Automated field attachment',
+    'description' => 'Define which entity will get a title_field for each bundle creation.',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('title_auto_field_attach'),
+    'access arguments' => array('administer content types'),
+    'file' => 'title.admin.inc',
+  );
+
   return $items;
 }
 
@@ -747,3 +756,27 @@ function title_field_replacement_hide_label($entity_type, $entity, &$variables,
     $variables[$key] = FALSE;
   }
 }
+
+/**
+ * Implements hook_field_attach_create_bundle().
+ *
+ * Attach title_field automatically to the new bundle if the admin choosed it.
+ */
+function title_field_attach_create_bundle($entity_type, $bundle) {
+  $variable_name = 'title_auto_attach_' . $entity_type;
+
+  if (!variable_get($variable_name, FALSE)) {
+    return;
+  }
+
+  $entity_info = entity_get_info($entity_type);
+  $entity_label = $entity_info['entity keys']['label'];
+
+  title_field_replacement_toggle($entity_type, $bundle, $entity_label);
+  title_field_replacement_batch_set($entity_type, $bundle, $entity_label);
+
+  drupal_set_message(t('The field @replacement-name was attached automaticly to the @entity-name.', array(
+    '@replacement-name' => $entity_info['field replacement'][$entity_label]['field']['field_name'],
+    '@entity-name' => strtolower($entity_info['label']),
+  )));
+}
