diff --git a/tools/maven2/maven-osgi-plugin/src/main/java/org/apache/felix/tools/maven/plugin/OsgiJarMojo.java b/tools/maven2/maven-osgi-plugin/src/main/java/org/apache/felix/tools/maven/plugin/OsgiJarMojo.java
index e3b83f9..f959dcf 100644
--- a/tools/maven2/maven-osgi-plugin/src/main/java/org/apache/felix/tools/maven/plugin/OsgiJarMojo.java
+++ b/tools/maven2/maven-osgi-plugin/src/main/java/org/apache/felix/tools/maven/plugin/OsgiJarMojo.java
@@ -233,6 +233,7 @@
 
 		Map exports = parseHeader(osgiManifest.getExportPackage());
 		Map imports = parseHeader(osgiManifest.getImportPackage());
+		Map explicitImports = parseHeader(osgiManifest.getExplicitImportPackage());
 		Map dynamicImports = parseHeader(osgiManifest.getDynamicImportPackage());
 
 		if (dynamicImports != null) {
@@ -250,6 +251,10 @@
         Set ignorePackageSet = parseIgnorePackage();
         referred.removeAll(ignorePackageSet);
 
+        if (explicitImports != null) {
+        	referred.addAll(explicitImports.keySet());
+        }
+        
 		// If the POM file contains an import declaration,
 		// we verify its validity. Otherwise, we generate the
 		// import package header from the referred. Exports
diff --git a/tools/maven2/maven-osgi-plugin/src/main/java/org/apache/felix/tools/maven/plugin/OsgiManifest.java b/tools/maven2/maven-osgi-plugin/src/main/java/org/apache/felix/tools/maven/plugin/OsgiManifest.java
index 7864eac..7148312 100644
--- a/tools/maven2/maven-osgi-plugin/src/main/java/org/apache/felix/tools/maven/plugin/OsgiManifest.java
+++ b/tools/maven2/maven-osgi-plugin/src/main/java/org/apache/felix/tools/maven/plugin/OsgiManifest.java
@@ -86,6 +86,7 @@
     private String requireBundle;
     private String fragmentHost;
     private String bundleManifestVersion;
+    private String explicitImportPackage;
 
     /**
      * Instance variables supporting non-framework manifest headers
@@ -222,6 +223,16 @@
         this.importPackage = trim(importPackage);
     }
 
+    public String getExplicitImportPackage()
+    {
+		return explicitImportPackage;
+	}
+    
+    public void setExplicitImportPackage(String explicitImportPackage)
+    {
+		this.explicitImportPackage = trim(explicitImportPackage);
+	}
+    
     public String getDynamicImportPackage()
     {
         return dynamicImportPackage;
