diff --git a/src/main/java/org/apache/sling/feature/extension/apiregions/analyser/CheckDeprecatedApi.java b/src/main/java/org/apache/sling/feature/extension/apiregions/analyser/CheckDeprecatedApi.java
index 83847a6..a1cd6a7 100644
--- a/src/main/java/org/apache/sling/feature/extension/apiregions/analyser/CheckDeprecatedApi.java
+++ b/src/main/java/org/apache/sling/feature/extension/apiregions/analyser/CheckDeprecatedApi.java
@@ -32,6 +32,7 @@
 import org.apache.sling.feature.scanner.BundleDescriptor;
 import org.apache.sling.feature.scanner.PackageInfo;
 import org.osgi.framework.Version;
+import org.osgi.framework.VersionRange;
 
 
 public class CheckDeprecatedApi implements AnalyserTask{
@@ -93,11 +94,12 @@
         for(final BundleDescriptor bd : context.getFeatureDescriptor().getBundleDescriptors()) {
             if ( isInAllowedRegion(bundleRegions.get(bd), region.getName(), allowedNames) ) {
                 for(final PackageInfo pi : bd.getImportedPackages()) {
+                    final VersionRange importRange = pi.getPackageVersionRange();
                     String imports = null;
                     for(final ApiExport exp : exports) {
                         if ( pi.getName().equals(exp.getName()) ) {
                             String version = exp.getProperties().get(PROP_VERSION);
-                            if ( version == null || pi.getPackageVersion() == null || pi.getPackageVersionRange().includes(new Version(version)) ) {
+                            if ( version == null || importRange == null || importRange.includes(new Version(version)) ) {
                                 imports = exp.getDeprecation().getPackageInfo().getMessage();
                                 break;
                             }
