diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/model/project/SigilProject.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/model/project/SigilProject.java
index 2dbe8de..602e5a9 100644
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/model/project/SigilProject.java
+++ b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/internal/model/project/SigilProject.java
@@ -392,11 +392,13 @@
     {
         ISigilBundle b = null;
         
-        synchronized ( bldProjectFile )
+        try
         {
-            if ( bundle == null )
+            boolean newProject = false;
+            
+            synchronized ( bldProjectFile )
             {
-                try
+                if ( bundle == null )
                 {
                     if ( bldProjectFile.getLocation().toFile().exists() )
                     {
@@ -405,18 +407,22 @@
                     else
                     {
                         bundle = setupDefaults();
-                        NullProgressMonitor npm = new NullProgressMonitor();
-                        bldProjectFile.create( buildContents(), true /* force */, npm );
-                        project.refreshLocal( IResource.DEPTH_INFINITE, npm );
+                        newProject = true;
                     }
                 }
-                catch ( CoreException e )
-                {
-                    SigilCore.error( "Failed to build bundle", e );
-                }
+
+                b = bundle;
             }
-            
-            b = bundle;
+
+            if ( newProject ) {
+                NullProgressMonitor npm = new NullProgressMonitor();
+                bldProjectFile.create( buildContents(), true /* force */, npm );
+                project.refreshLocal( IResource.DEPTH_ONE, npm );
+            }
+        }
+        catch ( CoreException e )
+        {
+            SigilCore.error( "Failed to build bundle", e );
         }
         
         return b;
@@ -633,10 +639,6 @@
 
     private ISigilBundle parseContents( IFile projectFile ) throws CoreException
     {
-        /*if ( !projectFile.isSynchronized(IResource.DEPTH_ONE) ) {
-        	projectFile.refreshLocal(IResource.DEPTH_ONE, new NullProgressMonitor());
-        }*/
-
         if ( projectFile.getName().equals( SigilCore.SIGIL_PROJECT_FILE ) )
         {
             return parseBldContents( projectFile.getLocationURI() );
