diff --git a/metatag.module b/metatag.module
index 220fa50..e159b97 100644
--- a/metatag.module
+++ b/metatag.module
@@ -1344,6 +1344,22 @@ function metatag_entity_has_metatags($entity_type, $entity) {
 }
 
 /**
+ * Checks if an individual entity has the meta tags UI on or off.
+ *
+ * @param string $entity_type
+ *   An entity type.
+ * @param object $entity
+ *   An entity object.
+ *
+ * @return boolean
+ *   TRUE or FALSE if the entity should have a form for meta tags.
+ */
+function metatag_entity_has_metatags_ui($entity_type, $entity) {
+  list( , , $bundle) = entity_extract_ids($entity_type, $entity);
+  return metatag_entity_supports_metatags_ui($entity_type, $bundle);
+}
+
+/**
  * Check whether the requested entity type (and bundle) support metatag.
  *
  * By default this will be FALSE, support has to be specifically enabled by
@@ -1400,6 +1416,40 @@ function metatag_entity_supports_metatags($entity_type = NULL, $bundle = NULL) {
 }
 
 /**
+ * Check whether the requested entity type (and bundle) allow the UI for
+ * overriding meta tags.
+ *
+ * By default this will be TRUE, support has to be specifically disabled by
+ * assigning a FALSE value to the metatag_enable_ui_{$entity_type}__{$bundle}
+ * variable.
+ */
+function metatag_entity_supports_metatags_ui($entity_type = NULL, $bundle = NULL) {
+
+  if (isset($entity_type) && isset($bundle)) {
+    // Metatag UI for entities can be disabled by assigning a variable
+    // 'metatag_enable_ui_{$entity_type}__{$bundle}' the value FALSE, e.g.:
+    //
+    // // Disable metatags UI for carousel nodes.
+    // $conf['metatag_enable_ui_node__carousel'] = FALSE;
+    if (variable_get('metatag_enable_ui_' . $entity_type . '__' . $bundle, 'monkey') == FALSE) {
+      return FALSE;
+    }
+  }
+  elseif (isset($entity_type)) {
+    // Metatag UI for entities can be disabled by assigning a variable
+    // 'metatag_enable_ui_{$entity_type}' the value FALSE, e.g.:
+    //
+    // // Disable metatags UI for file_entity.
+    // $conf['metatag_enable_ui_file'] = FALSE;
+    if (variable_get('metatag_enable_ui_' . $entity_type, 'monkey') == FALSE) {
+      return FALSE;
+    }
+  }
+
+  return TRUE;
+}
+
+/**
  * Implements hook_entity_info_alter().
  *
  * Enables Metatag support for the core entities.
@@ -1629,7 +1679,7 @@ function metatag_field_attach_delete_bundle($entity_type, $bundle) {
  * Implements hook_field_attach_form().
  */
 function metatag_field_attach_form($entity_type, $entity, &$form, &$form_state, $langcode) {
-  if (!metatag_entity_has_metatags($entity_type, $entity)) {
+  if (!metatag_entity_has_metatags($entity_type, $entity) || !metatag_entity_has_metatags_ui($entity_type, $entity)) {
     return;
   }
   // Entity_Translation will trigger this hook again, skip it.
