diff --git a/README.txt b/README.txt
index 42cebca..4d34e90 100644
--- a/README.txt
+++ b/README.txt
@@ -158,7 +158,8 @@ Features provides several useful drush commands:
 
   The option '--destination=foo' may be used to specify the path (from Drupal
   root) where the feature should be created. The default destination is
-  'sites/all/modules'.
+  'sites/all/modules/features', though this can be overridden via the Features
+  settings page.
 
 - `drush features-update [feature name]`
 
diff --git a/features.admin.inc b/features.admin.inc
index e23c7fb..9fd2c91 100644
--- a/features.admin.inc
+++ b/features.admin.inc
@@ -48,6 +48,18 @@ function features_settings_form($form, $form_state) {
       );
     }
   }
+
+  $form['general'] = array(
+    '#title' => t('General settings'),
+    '#type' => 'fieldset',
+  );
+  $form['general']['features_default_export_path'] = array(
+    '#title' => t('Default export path'),
+    '#type' => 'textfield',
+    '#default_value' => variable_get('features_default_export_path', FEATURES_DEFAULT_EXPORT_PATH),
+    '#description' => t('All feature exports will be automatically saved to this path, unless overridden on the individual feature.'),
+  );
+
   return system_settings_form($form);
 }
 
@@ -144,14 +156,14 @@ function features_export_form($form, $form_state, $feature = NULL) {
     '#default_value' => !empty($feature->info['project status url']) ? $feature->info['project status url'] : '',
     '#element_validate' => array('features_export_form_validate_field'),
   );
-  $directory = (!empty($feature->filename)) ? dirname($feature->filename) : 'sites/all/modules';
+  $directory = (!empty($feature->filename)) ? dirname($feature->filename) : variable_get('features_default_export_path', FEATURES_DEFAULT_EXPORT_PATH);
   if (!empty($feature_name) && substr_compare($directory, $feature_name, strlen($directory)-strlen($feature_name), strlen($feature_name)) === 0) {
     // if path ends with module_name, strip it
     $directory = dirname($directory);
   }
   $form['advanced']['generate_path'] = array(
     '#title' => t('Path to Generate feature module'),
-    '#description' => t('File path for feature module.  For Example: sites/all/modules or /tmp.  ' .
+    '#description' => t('File path for feature module.  For Example: sites/all/modules/features or /tmp.  ' .
       t('Leave blank for <strong>@path</strong>', array('@path' => $directory))),
     '#type' => 'textfield',
     '#required' => FALSE,
@@ -826,7 +838,7 @@ function features_export_build_form_submit($form, &$form_state) {
 
     if ($generate) {
       $success = TRUE;
-      $destination = 'sites/all/modules';
+      $destination = variable_get('features_default_export_path', FEATURES_DEFAULT_EXPORT_PATH);
       $directory = (!empty($export['project path'])) ? $export['project path'] . '/' . $module_name :
         (isset($feature->filename) ? dirname($feature->filename) : $destination . '/' . $module_name);
       if (!is_dir($directory)) {
diff --git a/features.drush.inc b/features.drush.inc
index f009189..1786a8b 100644
--- a/features.drush.inc
+++ b/features.drush.inc
@@ -16,6 +16,15 @@
 function features_drush_command() {
   $items = array();
 
+  // If Features is enabled display the configured default export path,
+  // otherwise just show the default.
+  if (defined('FEATURES_DEFAULT_EXPORT_PATH')) {
+    $path = variable_get('features_default_export_path', FEATURES_DEFAULT_EXPORT_PATH);
+  }
+  else {
+    $path = 'sites/all/modules/features';
+  }
+
   $items['features-list'] = array(
     'description' => "List all the available features for your site.",
     'options' => array(
@@ -31,7 +40,7 @@ function features_drush_command() {
       'components' => 'Patterns of components to include, see features-components for the format of patterns.'
     ),
     'options' => array(
-      'destination' => "Destination path (from Drupal root) of the exported feature. Defaults to 'sites/all/modules'",
+      'destination' => "Destination path (from Drupal root) of the exported feature. Defaults to '" . $path . "'.",
       'version-set' => "Specify a version number for the feature.",
       'version-increment' => "Increment the feature's version number.",
     ),
@@ -128,11 +137,20 @@ function features_drush_command() {
  * Implements hook_drush_help().
  */
 function features_drush_help($section) {
+  // If Features is enabled display the configured default export path,
+  // otherwise just show the default.
+  if (defined('FEATURES_DEFAULT_EXPORT_PATH')) {
+    $path = variable_get('features_default_export_path', FEATURES_DEFAULT_EXPORT_PATH);
+  }
+  else {
+    $path = 'sites/all/modules/features';
+  }
+
   switch ($section) {
     case 'drush:features':
       return dt("List all the available features for your site.");
     case 'drush:features-export':
-      return dt("Export a feature from your site into a module. If called with no arguments, display a list of available components. If called with a single argument, attempt to create a feature including the given component with the same name. The option '--destination=foo' may be used to specify the path (from Drupal root) where the feature should be created. The default destination is 'sites/all/modules'. The option '--version-set=foo' may be used to specify a version number for the feature or the option '--version-increment' may also to increment the feature's version number.");
+      return dt("Export a feature from your site into a module. If called with no arguments, display a list of available components. If called with a single argument, attempt to create a feature including the given component with the same name. The option '--destination=foo' may be used to specify the path (from Drupal root) where the feature should be created. The default destination is '@path'. The option '--version-set=foo' may be used to specify a version number for the feature or the option '--version-increment' may also to increment the feature's version number.", array('@path' => $path));
     case 'drush:features-components':
       return dt("List feature components matching patterns. The listing may be limited to exported/not-exported components.
 
@@ -442,7 +460,7 @@ function drush_features_export() {
     }
     else {
       // Same logic as in _drush_features_export. Should be refactored.
-      $destination = drush_get_option(array('destination'), 'sites/all/modules');
+      $destination = drush_get_option(array('destination'), variable_get('features_default_export_path', FEATURES_DEFAULT_EXPORT_PATH));
       $directory = isset($directory) ? $directory : $destination . '/' . $module;
       drush_print(dt('Will create a new module in !dir', array('!dir' => $directory)));
       if (!drush_confirm(dt('Do you really want to continue?'))) {
@@ -532,7 +550,7 @@ function drush_features_update_all() {
 function _drush_features_export($info, $module_name = NULL, $directory = NULL) {
   $root = drush_get_option(array('r', 'root'), drush_locate_root());
   if ($root) {
-    $destination = drush_get_option(array('destination'), 'sites/all/modules');
+    $destination = drush_get_option(array('destination'), variable_get('features_default_export_path', FEATURES_DEFAULT_EXPORT_PATH));
     $directory = isset($directory) ? $directory : $destination . '/' . $module_name;
     if (is_dir($directory)) {
       drush_print(dt('Module appears to already exist in !dir', array('!dir' => $directory)));
diff --git a/features.install b/features.install
index 7383cf9..762a054 100644
--- a/features.install
+++ b/features.install
@@ -22,6 +22,7 @@ function features_install() {
  */
 function features_uninstall() {
   variable_del('features_codecache');
+  variable_del('features_default_export_path');
   variable_del('features_semaphore');
   variable_del('features_ignored_orphans');
   if (db_table_exists('menu_custom')) {
diff --git a/features.module b/features.module
index 59952b3..fbd4d19 100644
--- a/features.module
+++ b/features.module
@@ -64,6 +64,11 @@ define('FEATURES_DUPLICATES_CONFLICT', 0);
 define('FEATURES_DUPLICATES_ALLOWED', 1);
 
 /**
+ * The default destination path for features exported via the UI.
+ */
+define('FEATURES_DEFAULT_EXPORT_PATH', 'sites/all/modules/features');
+
+/**
  * Implements hook_menu().
  */
 function features_menu() {
