diff --git a/features.module b/features.module
index cd6af59..99b8b8e 100644
--- a/features.module
+++ b/features.module
@@ -284,7 +284,7 @@ function features_modules_disabled($modules) {
   // Go through all modules and gather features that can be disabled.
   $items = array();
   foreach ($modules as $module) {
-    if ($feature = feature_load($module)) {
+    if (!module_hook($module, 'disable') && $feature = feature_load($module)) {
       $items[$module] = array_keys($feature->info['features']);
     }
   }
@@ -303,7 +303,7 @@ function features_modules_enabled($modules) {
   // Go through all modules and gather features that can be enabled.
   $items = array();
   foreach ($modules as $module) {
-    if ($feature = feature_load($module)) {
+    if (!module_hook($module, 'enable') && $feature = feature_load($module)) {
       $items[$module] = array_keys($feature->info['features']);
     }
   }
