diff --git a/metatag.module b/metatag.module
index 4c2dc0c..c07a2ff 100644
--- a/metatag.module
+++ b/metatag.module
@@ -1454,6 +1454,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;
+}
+
+/**
  * Enable support for a specific entity type.
  *
  * @param string $entity_type
@@ -1657,7 +1691,7 @@ function metatag_field_attach_form($entity_type, $entity, &$form, &$form_state,
 
   list($entity_id, $revision_id, $bundle) = entity_extract_ids($entity_type, $entity);
 
-  if (!metatag_entity_supports_metatags($entity_type, $bundle)) {
+  if (!metatag_entity_supports_metatags($entity_type, $bundle) || !metatag_entity_supports_metatags_ui($entity_type, $bundle)) {
     return;
   }
 
