diff --git a/features.module b/features.module
index 52704e7..b28997a 100644
--- a/features.module
+++ b/features.module
@@ -324,7 +324,7 @@ function features_include($reset = FALSE) {
     }
 
     // Clear static cache, since we've now included new implementers.
-    foreach (features_get_components(NULL, 'file') as $file) {
+    foreach (features_get_components(NULL, 'file', $reset) as $file) {
       if (is_file(DRUPAL_ROOT . '/' . $file)) {
         require_once DRUPAL_ROOT . '/' . $file;
       }
diff --git a/tests/features.test b/tests/features.test
index 5057a2b..64b0c99 100644
--- a/tests/features.test
+++ b/tests/features.test
@@ -167,3 +167,51 @@ class FeaturesUserTestCase extends DrupalWebTestCase {
     }
   }
 }
+
+/**
+ * Tests enabling of feature modules.
+ */
+class FeaturesEnableTestCase extends DrupalWebTestCase {
+  protected $profile = 'testing';
+
+  /**
+   * Test info.
+   */
+  public static function getInfo() {
+    return array(
+      'name' => t('Features enable tests'),
+      'description' => t('Run tests for enabling of features.') ,
+      'group' => t('Features'),
+    );
+  }
+
+
+  /**
+   * Run test for features_get_components on enable.
+   */
+  public function testFeaturesGetComponents() {
+
+    // Testing that features_get_components returns correct after enable.
+    $modules = array(
+      'features',
+      'taxonomy',
+      'features_test',
+    );
+
+    // Make sure features_get_components is cached if features already enabled.
+    if (!module_exists('features')) {
+      drupal_load('module', 'features');
+    }
+    features_get_components();
+
+    module_enable($modules);
+
+    // Make sure correct information for enabled modules is now cached.
+    $components = features_get_components();
+    $taxonomy_component_info = taxonomy_features_api();
+    $this->assertTrue(!empty($components['taxonomy']) && $components['taxonomy'] == $taxonomy_component_info['taxonomy'], 'features_get_components returns correct taxonomy information on enable');
+
+    features_rebuild();
+    $this->assertNotNull(taxonomy_vocabulary_machine_name_load('taxonomy_features_test'), 'Taxonomy vocabulary correctly enabled on enable.');
+  }
+}
diff --git a/tests/features_test.features.inc b/tests/features_test.features.inc
index 785fb59..2f1ee90 100644
--- a/tests/features_test.features.inc
+++ b/tests/features_test.features.inc
@@ -18,10 +18,7 @@ function features_test_ctools_plugin_api() {
  * Implements hook_views_api().
  */
 function features_test_views_api() {
-  list($module, $api) = func_get_args();
-  if ($module == "views" && $api == "views_default") {
-    return array("version" => "3.0");
-  }
+  return array("version" => "3.0");
 }
 
 /**
diff --git a/tests/features_test.features.user_permission.inc b/tests/features_test.features.user_permission.inc
index d70ce2b..e957190 100644
--- a/tests/features_test.features.user_permission.inc
+++ b/tests/features_test.features.user_permission.inc
@@ -10,7 +10,7 @@
 function features_test_user_default_permissions() {
   $permissions = array();
 
-  // Exported permission: create features_test content
+  // Exported permission: create features_test content.
   $permissions['create features_test content'] = array(
     'name' => 'create features_test content',
     'roles' => array(
diff --git a/tests/features_test.info b/tests/features_test.info
index d7ab1b5..98b7ec6 100644
--- a/tests/features_test.info
+++ b/tests/features_test.info
@@ -1,17 +1,20 @@
-name = "Features Tests"
-description = "Test module for Features testing."
-core = "7.x"
-package = "Testing"
-php = "5.2.0"
-dependencies[] = "features"
-dependencies[] = "image"
-dependencies[] = "strongarm"
-dependencies[] = "views"
-features[ctools][] = "strongarm:strongarm:1"
-features[ctools][] = "views:views_default:3.0"
-features[field][] = "node-features_test-field_features_test"
-features[filter][] = "features_test"
-features[image][] = "features_test"
-features[node][] = "features_test"
-features[user_permission][] = "create features_test content"
-features[views_view][] = "features_test"
+name = Features Tests
+description = Test module for Features testing.
+core = 7.x
+package = Testing
+php = 5.2.0
+dependencies[] = features
+dependencies[] = image
+dependencies[] = strongarm
+dependencies[] = taxonomy
+dependencies[] = views
+features[ctools][] = strongarm:strongarm:1
+features[ctools][] = views:views_default:3.0
+features[features_api][] = api:1
+features[field][] = node-features_test-field_features_test
+features[filter][] = features_test
+features[image][] = features_test
+features[node][] = features_test
+features[taxonomy][] = taxonomy_features_test
+features[user_permission][] = create features_test content
+features[views_view][] = features_test
diff --git a/tests/features_test.views_default.inc b/tests/features_test.views_default.inc
index 29cb85c..38725b6 100644
--- a/tests/features_test.views_default.inc
+++ b/tests/features_test.views_default.inc
@@ -17,7 +17,7 @@ function features_test_views_default_views() {
   $view->base_table = 'node';
   $view->human_name = '';
   $view->core = 0;
-  $view->api_version = '3.0-alpha1';
+  $view->api_version = '3.0';
   $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
 
   /* Display: Defaults */
@@ -31,19 +31,6 @@ function features_test_views_default_views() {
   $handler->display->display_options['pager']['type'] = 'full';
   $handler->display->display_options['style_plugin'] = 'default';
   $handler->display->display_options['row_plugin'] = 'node';
-  $translatables['features_test'] = array(
-    t('Defaults'),
-    t('Test'),
-    t('more'),
-    t('Apply'),
-    t('Reset'),
-    t('Sort by'),
-    t('Asc'),
-    t('Desc'),
-    t('Items per page'),
-    t('- All -'),
-    t('Offset'),
-  );
   $export['features_test'] = $view;
 
   return $export;
