diff --git a/public/sites/all/modules/contrib/features/features.api.php b/public/sites/all/modules/contrib/features
index 10915e1..d2e9154 100644
--- a/public/sites/all/modules/contrib/features/features.api.php
+++ b/public/sites/all/modules/contrib/features/features.api.php
@@ -279,6 +279,23 @@ function hook_features_pipe_alter(&$pipe, $data, $export) {
 }
 
 /**
+ * Alter the items array for components in features.
+ *
+ * @param array &$items
+ *   By reference. The items array of components after their states have been checked.
+ *
+ * The component marked as not default are contained in $items['component']. This hook 
+ * is called before restore actions like rebuild, revert, diable and enable are run.
+ */
+function hook_features_restore_alter(&$items) {
+  if(isset($items['feature_name'])) {
+    if($items['feature_name'][0] == 'component') {
+      unset($items['feature_name'][0]);
+    }
+  }
+}
+
+/**
  * @defgroup features_component_alter_hooks Feature's component alter hooks
  * @{
  * Hooks to modify components defined by other features. These come in the form
diff --git a/public/sites/all/modules/contrib/features/features.module b/public/sites/all/modules/contrib/features/
index ba5b9fe..b861366 100644
--- a/public/sites/all/modules/contrib/features/features.module
+++ b/public/sites/all/modules/contrib/features/features.module
@@ -932,6 +932,9 @@ function _features_restore($op, $items = array()) {
     }
   }
 
+  // Allow other modules to alter the items before the restore action is performed.
+  drupal_alter('features_restore', $items);
+
   foreach ($items as $module_name => $components) {
     foreach ($components as $component) {
       // Invoke pre hook
@@ -1026,6 +1029,7 @@ function features_hook_info() {
     'features_api',
     'features_pipe_alter',
     'features_export_alter',
+    'features_restore_alter',
   );
   return array_fill_keys($hooks, array('group' => 'features'));
 }