diff --git a/bundleplugin/src/main/java/org/apache/felix/bundleplugin/AntPlugin.java b/bundleplugin/src/main/java/org/apache/felix/bundleplugin/AntPlugin.java
index 5aa871e..99793f1 100644
--- a/bundleplugin/src/main/java/org/apache/felix/bundleplugin/AntPlugin.java
+++ b/bundleplugin/src/main/java/org/apache/felix/bundleplugin/AntPlugin.java
@@ -82,6 +82,9 @@
             buildXml = StringUtils.replace( buildXml, "ARTIFACT_ID", artifactId );
 
             FileUtils.fileWrite( baseDir + BUILD_XML, buildXml );
+
+            // cleanup...
+            builder.close();
         }
         catch ( Exception e )
         {
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 7b7bcba..1f9b58d 100644
--- a/bundleplugin/src/main/java/org/apache/felix/bundleplugin/BundleAllPlugin.java
+++ b/bundleplugin/src/main/java/org/apache/felix/bundleplugin/BundleAllPlugin.java
@@ -383,6 +383,10 @@
 
             BundleInfo bundleInfo = addExportedPackages( project, exportedPackages );
 
+            // cleanup...
+            analyzer.close();
+            osgiJar.close();
+
             return bundleInfo;
         }
         /* too bad Jar.write throws Exception */
diff --git a/bundleplugin/src/main/java/org/apache/felix/bundleplugin/BundlePlugin.java b/bundleplugin/src/main/java/org/apache/felix/bundleplugin/BundlePlugin.java
index b5bf8b2..e7a9fbf 100644
--- a/bundleplugin/src/main/java/org/apache/felix/bundleplugin/BundlePlugin.java
+++ b/bundleplugin/src/main/java/org/apache/felix/bundleplugin/BundlePlugin.java
@@ -334,6 +334,9 @@
                     getLog().error( "Error trying to write Manifest to file " + outputFile, e );
                 }
             }
+
+            // cleanup...
+            builder.close();
         }
         catch ( MojoFailureException e )
         {
diff --git a/bundleplugin/src/main/java/org/apache/felix/bundleplugin/ManifestPlugin.java b/bundleplugin/src/main/java/org/apache/felix/bundleplugin/ManifestPlugin.java
index 94bbdcb..3aabdf5 100644
--- a/bundleplugin/src/main/java/org/apache/felix/bundleplugin/ManifestPlugin.java
+++ b/bundleplugin/src/main/java/org/apache/felix/bundleplugin/ManifestPlugin.java
@@ -36,6 +36,7 @@
 import org.apache.maven.project.MavenProject;
 
 import aQute.lib.osgi.Analyzer;
+import aQute.lib.osgi.Builder;
 import aQute.lib.osgi.Jar;
 
 
@@ -56,7 +57,9 @@
         {
             if ( "bundle".equals( project.getPackaging() ) )
             {
-                manifest = buildOSGiBundle( project, instructions, properties, classpath ).getJar().getManifest();
+                Builder builder = buildOSGiBundle( project, instructions, properties, classpath );
+                manifest = builder.getJar().getManifest();
+                builder.close();
             }
             else
             {
@@ -131,7 +134,12 @@
             }
         }
 
-        return analyzer.getJar().getManifest();
+        Manifest manifest = analyzer.getJar().getManifest();
+
+        // cleanup...
+        analyzer.close();
+
+        return manifest;
     }
 
 
diff --git a/bundleplugin/src/test/java/org/apache/felix/bundleplugin/BundlePluginTest.java b/bundleplugin/src/test/java/org/apache/felix/bundleplugin/BundlePluginTest.java
index c88090f..96bc47b 100644
--- a/bundleplugin/src/test/java/org/apache/felix/bundleplugin/BundlePluginTest.java
+++ b/bundleplugin/src/test/java/org/apache/felix/bundleplugin/BundlePluginTest.java
@@ -122,6 +122,8 @@
         analyzer.calcManifest();
 
         assertEquals( 3, analyzer.getExports().size() );
+
+        analyzer.close();
     }
 
 
