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 7243335..4e2ff06 100644
--- a/bundleplugin/src/main/java/org/apache/felix/bundleplugin/BundlePlugin.java
+++ b/bundleplugin/src/main/java/org/apache/felix/bundleplugin/BundlePlugin.java
@@ -533,12 +533,22 @@
     protected Properties getDefaultProperties(MavenProject project)
     {
         Properties properties = new Properties();
+
+        String bsn;
+        try
+        {
+            bsn = maven2OsgiConverter.getBundleSymbolicName( project.getArtifact() );
+        }
+        catch (Exception e)
+        {
+            bsn = project.getGroupId() + "." + project.getArtifactId();
+        }
+
         // Setup defaults
-        String bsn = maven2OsgiConverter.getBundleSymbolicName( project.getArtifact() );
         properties.put(Analyzer.BUNDLE_SYMBOLICNAME, bsn);
         properties.put(Analyzer.IMPORT_PACKAGE, "*");
-
         properties.put(Analyzer.BUNDLE_VERSION, project.getVersion());
+
         this.header(properties, Analyzer.BUNDLE_DESCRIPTION, project
            .getDescription());
         StringBuffer licenseText = this.printLicenses(project.getLicenses());
