diff --git a/feature_toggle.module b/feature_toggle.module
index eb3896f..809bce8 100644
--- a/feature_toggle.module
+++ b/feature_toggle.module
@@ -107,4 +107,13 @@ function feature_toggle_page_build(&$page) {
   drupal_add_js($js_settings, 'setting');
 }
 
+/**
+ * Implements hook_ctools_plugin_directory().
+ */
+function feature_toggle_ctools_plugin_directory($module, $plugin) {
+  if ($module == 'ctools' && !empty($plugin)) {
+    return "plugins/$plugin";
+  }
+}
+
 // EOF
diff --git a/plugins/access/feature.inc b/plugins/access/feature.inc
new file mode 100644
index 0000000..de8992f
--- /dev/null
+++ b/plugins/access/feature.inc
@@ -0,0 +1,62 @@
+<?php
+
+/**
+ * @file
+ * Plugin to provide access control based on features defined by feature_toggle.
+ */
+
+/**
+ * Plugins are described by creating a $plugin array which will be used
+ * by the system that includes this file.
+ */
+$plugin = array(
+  'title' => t("Feature Toggle"),
+  'description' => t('A feature toggle based access plugin.'),
+  'callback' => 'feature_toggle_feature_ctools_access_check',
+  'settings form' => 'feature_toggle_feature_ctools_access_settings',
+  'summary' => 'feature_toggle_feature_ctools_access_summary',
+);
+
+/**
+ * Provide a summary description based upon the checked roles.
+ */
+function feature_toggle_feature_ctools_access_summary($conf, $context) {
+  $features = variable_get('feature_flags', array());
+  $feature_name = $features[$conf['feature']]['name'];
+  if ($feature_name) {
+    return t('Available when feature "@feature" is enabled', array('@feature' => $feature_name));
+  }
+  else {
+    return t('Access denied. Feature "@feature" is not available', array('@feature' => $conf['feature']));
+  }
+}
+
+/**
+ * Check for access.
+ */
+function feature_toggle_feature_ctools_access_check($conf, $context) {
+  module_load_include('inc', 'feature_toggle', 'includes/feature_toggle.api');
+  return feature_toggle_get_status($conf['feature']);
+}
+
+/**
+ * Settings form for the 'by feature' access plugin
+ */
+function feature_toggle_feature_ctools_access_settings($form, &$form_state, $conf) {
+  $features = variable_get('feature_flags', array());
+  $options = array();
+
+  foreach ($features as $name => $feature) {
+    $options[$name] = $feature['name'];
+  }
+
+  $form['settings']['feature'] = array(
+    '#type' => 'select',
+    '#options' => $options,
+    '#title' => t('Feature'),
+    '#default_value' => $conf['feature'],
+    '#description' => t('Acceess will be granted when this feature is enabled.'),
+  );
+
+  return $form;
+}
