diff --git a/bundleplugin/src/main/java/org/apache/felix/bundleplugin/BundleAllPlugin.java b/bundleplugin/src/main/java/org/apache/felix/bundleplugin/BundleAllPlugin.java
index aee46b3..7b7bcba 100644
--- a/bundleplugin/src/main/java/org/apache/felix/bundleplugin/BundleAllPlugin.java
+++ b/bundleplugin/src/main/java/org/apache/felix/bundleplugin/BundleAllPlugin.java
@@ -29,6 +29,7 @@
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.Properties;
 import java.util.Set;
 import java.util.jar.Manifest;
 import java.util.regex.Matcher;
@@ -90,6 +91,13 @@
     private List remoteRepositories;
 
     /**
+     * Import-Package to be used when wrapping dependencies.
+     *
+     * @parameter expression="${wrapImportPackage}" default-value="*"
+     */
+    private String wrapImportPackage;
+
+    /**
      * @component
      */
     private ArtifactFactory m_factory;
@@ -331,7 +339,7 @@
         try
         {
             Map instructions = new HashMap();
-            instructions.put( Analyzer.EXPORT_PACKAGE, "*" );
+            instructions.put( Analyzer.IMPORT_PACKAGE, wrapImportPackage );
 
             project.getArtifact().setFile( getFile( artifact ) );
             File outputFile = getOutputFile( artifact );
@@ -347,7 +355,7 @@
                 //                    + " to the same file, try cleaning: " + outputFile );
             }
 
-            Analyzer analyzer = getAnalyzer( project, getClasspath( project ) );
+            Analyzer analyzer = getAnalyzer( project, instructions, new Properties(), getClasspath( project ) );
 
             Jar osgiJar = new Jar( project.getArtifactId(), project.getArtifact().getFile() );
 
