Fix the region reporting on removed candidates.
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 0bdda79..0ec8c16 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
@@ -95,7 +95,8 @@
 
         Set<BundleCapability> coveredCaps = new HashSet<>();
 
-        Map<BundleCapability, Set<String>> bcRegionMap = new HashMap<>();
+        Map<BundleCapability, String> bcFeatureMap = new HashMap<>();
+        String packageName = null;
         nextCapability:
         for (BundleCapability bc : candidates) {
             BundleRevision rev = bc.getRevision();
@@ -153,7 +154,7 @@
                     coveredCaps.add(bc);
                     continue nextCapability;
                 }
-                bcRegionMap.put(bc, capRegions);
+                bcFeatureMap.put(bc, capFeat);
 
                 List<String> sharedRegions = new ArrayList<>(reqRegions);
                 sharedRegions.retainAll(capRegions);
@@ -177,9 +178,9 @@
 
                 Object pkg = bc.getAttributes().get(PackageNamespace.PACKAGE_NAMESPACE);
                 if (pkg instanceof String) {
-                    String packageName = (String) pkg;
+                    packageName = (String) pkg;
 
-                    Set<String> globalPackages = regionPackageMap.get("global");
+                    Set<String> globalPackages = regionPackageMap.get(RegionEnforcer.GLOBAL_REGION);
                     if (globalPackages != null && globalPackages.contains(packageName)) {
                         // If the export is in the global region everyone can access
                         coveredCaps.add(bc);
@@ -215,7 +216,7 @@
 
                 sb.append(bc.toString());
                 sb.append("[Regions: ");
-                sb.append(bcRegionMap.get(bc));
+                sb.append(getRegionsForPackage(packageName, bcFeatureMap.get(bc)));
                 sb.append("]");
             }
 
@@ -225,6 +226,33 @@
         }
     }
 
+    List<String> getRegionsForPackage(String packageName, String feature) {
+        if (packageName == null)
+            return Collections.emptyList();
+
+        Set<String> regions = featureRegionMap.get(feature);
+        if (regions == null)
+            return Collections.emptyList();
+
+        List<String> res = new ArrayList<>();
+        boolean found = false;
+        for (String region : regions) {
+            Set<String> packages = regionPackageMap.get(region);
+            if (packages == null)
+                continue;
+
+            if (found) {
+                // Since later regions inherit from earlier ones, if the package has been found before
+                // it also applies to this region.
+                res.add(region);
+            } else if (packages.contains(packageName)) {
+                res.add(region);
+                found = true;
+            }
+        }
+        return res;
+    }
+
     @Override
     public void end() {
         // Nothing to do
diff --git a/src/test/java/org/apache/sling/feature/apiregions/impl/ResolverHookImplTest.java b/src/test/java/org/apache/sling/feature/apiregions/impl/ResolverHookImplTest.java
index f22c212..2315267 100644
--- a/src/test/java/org/apache/sling/feature/apiregions/impl/ResolverHookImplTest.java
+++ b/src/test/java/org/apache/sling/feature/apiregions/impl/ResolverHookImplTest.java
@@ -272,6 +272,32 @@
         assertEquals(Collections.singletonList(bc13), c13);
     }
 
+    @Test
+    public void testGetRegionsForPackage() {
+        Set<String> regions = new HashSet<>(Arrays.asList("r1", "r2", "r3"));
+        Map<String, Set<String>> featureRegionMap = Collections.singletonMap("f2", regions);
+        Map<String, Set<String>> regionPackageMap = new HashMap<>();
+
+        regionPackageMap.put("r2", Collections.singleton("a.b.c"));
+        Set<String> pkgs = new HashSet<>();
+        pkgs.add("org.foo.bar");
+        pkgs.add("org.foo.zar");
+        regionPackageMap.put("r3", pkgs);
+
+        ResolverHookImpl rh = new ResolverHookImpl(
+                Collections.<Map.Entry<String, Version>, List<String>>emptyMap(),
+                Collections.<String, Set<String>>emptyMap(), featureRegionMap, regionPackageMap);
+
+        assertEquals(Collections.emptyList(), rh.getRegionsForPackage(null, "f1"));
+        assertEquals(Collections.emptyList(), rh.getRegionsForPackage("org.foo", "f1"));
+        assertEquals(Collections.emptyList(), rh.getRegionsForPackage(null, "f2"));
+
+        assertEquals(Collections.singletonList("r3"),
+            rh.getRegionsForPackage("org.foo.bar", "f2"));
+        assertEquals(Arrays.asList("r2", "r3"),
+            rh.getRegionsForPackage("a.b.c", "f2"));
+    }
+
     private BundleCapability mockCapability(String pkgName, String bid, Map<Entry<String, Version>, List<String>> bsnvermap) {
         for (Map.Entry<Map.Entry<String, Version>, List<String>> entry : bsnvermap.entrySet()) {
             if (entry.getValue().contains(bid)) {