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 496f844..95039aa 100644
--- a/bundleplugin/src/main/java/org/apache/felix/bundleplugin/BundlePlugin.java
+++ b/bundleplugin/src/main/java/org/apache/felix/bundleplugin/BundlePlugin.java
@@ -421,7 +421,10 @@
         properties.putAll( transformDirectives( originalInstructions ) );
 
         Builder builder = new Builder();
-        builder.setBase( getBase( currentProject ) );
+        synchronized ( BundlePlugin.class ) // protect setBase...getBndLastModified which uses static DateFormat 
+        {
+            builder.setBase( getBase( currentProject ) );
+        }
         builder.setProperties( sanitize( properties ) );
         if ( classpath != null )
         {
diff --git a/bundleplugin/src/main/java/org/apache/felix/obrplugin/ObrInstall.java b/bundleplugin/src/main/java/org/apache/felix/obrplugin/ObrInstall.java
index 5f4039d..d4b4003 100644
--- a/bundleplugin/src/main/java/org/apache/felix/obrplugin/ObrInstall.java
+++ b/bundleplugin/src/main/java/org/apache/felix/obrplugin/ObrInstall.java
@@ -138,15 +138,18 @@
             Config userConfig = new Config();
 
             update = new ObrUpdate( repositoryXml, obrXmlFile, project, mavenRepository, userConfig, log );
-            update.parseRepositoryXml();
-
-            updateLocalBundleMetadata( project.getArtifact(), update );
-            for ( Iterator i = attachedArtifacts.iterator(); i.hasNext(); )
+            synchronized ( ObrUpdate.class ) // protect against concurrent in-process updates
             {
-                updateLocalBundleMetadata( ( Artifact ) i.next(), update );
-            }
+                update.parseRepositoryXml();
 
-            update.writeRepositoryXml();
+                updateLocalBundleMetadata( project.getArtifact(), update );
+                for ( Iterator i = attachedArtifacts.iterator(); i.hasNext(); )
+                {
+                    updateLocalBundleMetadata( ( Artifact ) i.next(), update );
+                }
+
+                update.writeRepositoryXml();
+            }
         }
         catch ( Exception e )
         {
