diff --git a/features.drush.inc b/features.drush.inc
index e3ae80c..3892b51 100644
--- a/features.drush.inc
+++ b/features.drush.inc
@@ -29,6 +29,7 @@ function features_drush_command() {
     'description' => "List all the available features for your site.",
     'options' => array(
       'status' => "Feature status, can be 'enabled', 'disabled'  or 'all'",
+      'state' => "Feature state, can be 'db' or 'all'",
     ),
     'drupal dependencies' => array('features'),
     'aliases' => array('fl', 'features'),
@@ -208,6 +209,7 @@ Lastly, a pattern without a colon is interpreted as having \":%\" appended, for
  */
 function drush_features_list() {
   $status = drush_get_option('status') ? drush_get_option('status') : 'all';
+  $state = drush_get_option('state') ? drush_get_option('state') : 'all';
   if (!in_array($status, array('enabled', 'disabled', 'all'))) {
     return drush_set_error('', dt('!status is not valid', array('!status' => $status)));
   }
@@ -224,6 +226,9 @@ function drush_features_list() {
       case FEATURES_DEFAULT:
       case FEATURES_REBUILDABLE:
         $storage = '';
+        if ($state != 'all') {
+          continue 2;
+        }
         break;
       case FEATURES_OVERRIDDEN:
         $storage = dt('Overridden');
