diff --git a/tools/maven2/maven-bundle-plugin/src/main/java/org/apache/felix/tools/maven2/bundleplugin/BundlePlugin.java b/tools/maven2/maven-bundle-plugin/src/main/java/org/apache/felix/tools/maven2/bundleplugin/BundlePlugin.java
index 982fe58..462ed87 100644
--- a/tools/maven2/maven-bundle-plugin/src/main/java/org/apache/felix/tools/maven2/bundleplugin/BundlePlugin.java
+++ b/tools/maven2/maven-bundle-plugin/src/main/java/org/apache/felix/tools/maven2/bundleplugin/BundlePlugin.java
@@ -111,6 +111,24 @@
   }
  }
 
+ /* transform directives from their XML form to the expected BND syntax (eg. _include becomes -include) */
+ protected Map transformDirectives(Map instructions) {
+  Set removedKeys = new HashSet();
+//System.out.println("BEFORE "+instructions);
+  for (Iterator i = instructions.entrySet().iterator(); i.hasNext();) {
+    final Map.Entry e = (Map.Entry)i.next();
+    final String key = (String)e.getKey();
+    if (key.startsWith("_")) {
+      final String transformedKey = "-"+key.substring(1);
+      instructions.put(transformedKey, e.getValue());
+      removedKeys.add(key);
+    }
+  }
+  instructions.keySet().removeAll(removedKeys);
+//System.out.println("AFTER "+instructions);
+  return instructions;
+ }
+
  protected void execute(MavenProject project, Map instructions, Properties properties, Jar[] classpath) throws MojoExecutionException {
   try {
    File jarFile = new File(getBuildDirectory(), getBundleName(project));
@@ -122,7 +140,7 @@
      properties.put(Analyzer.EXPORT_PACKAGE, bsn + ".*");
    }
 
-   properties.putAll(instructions);
+   properties.putAll(transformDirectives(instructions));
  
    Builder builder = new Builder();
    builder.setBase(baseDir);
diff --git a/tools/maven2/maven-bundle-plugin/src/main/java/org/apache/felix/tools/maven2/bundleplugin/ManifestPlugin.java b/tools/maven2/maven-bundle-plugin/src/main/java/org/apache/felix/tools/maven2/bundleplugin/ManifestPlugin.java
index 25f7304..2e1a530 100644
--- a/tools/maven2/maven-bundle-plugin/src/main/java/org/apache/felix/tools/maven2/bundleplugin/ManifestPlugin.java
+++ b/tools/maven2/maven-bundle-plugin/src/main/java/org/apache/felix/tools/maven2/bundleplugin/ManifestPlugin.java
@@ -105,7 +105,7 @@
             props.put( Analyzer.IMPORT_PACKAGE, "*" );
         }
 
-        props.putAll( instructions );
+        props.putAll( transformDirectives( instructions ) );
 
         analyzer.setProperties( props );
 
