diff --git a/bundleplugin/src/main/java/aQute/lib/osgi/Analyzer.java b/bundleplugin/src/main/java/aQute/lib/osgi/Analyzer.java
index 6661e6c..f3954bd 100644
--- a/bundleplugin/src/main/java/aQute/lib/osgi/Analyzer.java
+++ b/bundleplugin/src/main/java/aQute/lib/osgi/Analyzer.java
@@ -166,6 +166,9 @@
             exports = merge("export-package", exportInstructions, contained,
                     superfluous.keySet(), null);
 
+            // disallow export of default package
+            exports.remove(".");
+
             for (Iterator<Map.Entry<String, Map<String, String>>> i = superfluous
                     .entrySet().iterator(); i.hasNext();) {
                 // It is possible to mention metadata directories in the export
@@ -1619,7 +1622,7 @@
                 String pack = getPackage(relativePath);
 
                 if (pack != null && !contained.containsKey(pack)) {
-                    if (!(pack.equals(".") || isMetaData(relativePath))) {
+                    if (!isMetaData(relativePath)) {
 
                         Map<String, String> map = new LinkedHashMap<String, String>();
                         contained.put(pack, map);
