diff --git a/src/main/java/org/apache/sling/feature/apiregions/impl/ResolverHookImpl.java b/src/main/java/org/apache/sling/feature/apiregions/impl/ResolverHookImpl.java
index 1476fc4..d6a1881 100644
--- a/src/main/java/org/apache/sling/feature/apiregions/impl/ResolverHookImpl.java
+++ b/src/main/java/org/apache/sling/feature/apiregions/impl/ResolverHookImpl.java
@@ -103,16 +103,7 @@
                 continue nextCapability;
             }
 
-            if (capFeatures.isEmpty())
-                capFeatures = Collections.singleton(null);
-
             for (String capFeat : capFeatures) {
-                if (capFeat == null) {
-                    // everyone can access capability not coming from a feature
-                    coveredCaps.put(bc, RegionConstants.GLOBAL_REGION);
-                    continue nextCapability;
-                }
-
                 if (reqFeatures.contains(capFeat)) {
                     // Within a single feature everything can wire to everything else
                     coveredCaps.put(bc, null); // null value means same bundle, same feature or system bundle
