[tests] Modify teardown
diff --git a/plugins/org.eclipse.mylyn.docs.intent.client.ui.ide/src/org/eclipse/mylyn/docs/intent/client/ui/ide/builder/IntentBuilderDeltaVisitor.java b/plugins/org.eclipse.mylyn.docs.intent.client.ui.ide/src/org/eclipse/mylyn/docs/intent/client/ui/ide/builder/IntentBuilderDeltaVisitor.java
index 1b5ebc9..5461ee7 100644
--- a/plugins/org.eclipse.mylyn.docs.intent.client.ui.ide/src/org/eclipse/mylyn/docs/intent/client/ui/ide/builder/IntentBuilderDeltaVisitor.java
+++ b/plugins/org.eclipse.mylyn.docs.intent.client.ui.ide/src/org/eclipse/mylyn/docs/intent/client/ui/ide/builder/IntentBuilderDeltaVisitor.java
@@ -50,10 +50,8 @@
 		switch (delta.getKind()) {
 			case IResourceDelta.ADDED:
 				// If an intent project has been created
-				if (resource instanceof IProject && resource.isAccessible()
-						&& ((IProject)resource).hasNature(IntentNature.NATURE_ID)) {
-					openedProjects.add((IProject)resource);
-				}
+				// Then a new repository will be created and the
+				// IntentProjectBasedRepositoryManagerContribution will trigger project connexion
 				break;
 			case IResourceDelta.CHANGED:
 				if ((IResourceDelta.OPEN & delta.getFlags()) != 0) {
diff --git a/plugins/org.eclipse.mylyn.docs.intent.client.ui.ide/src/org/eclipse/mylyn/docs/intent/client/ui/ide/builder/IntentProjectListener.java b/plugins/org.eclipse.mylyn.docs.intent.client.ui.ide/src/org/eclipse/mylyn/docs/intent/client/ui/ide/builder/IntentProjectListener.java
index 402c68f..8d61e2e 100644
--- a/plugins/org.eclipse.mylyn.docs.intent.client.ui.ide/src/org/eclipse/mylyn/docs/intent/client/ui/ide/builder/IntentProjectListener.java
+++ b/plugins/org.eclipse.mylyn.docs.intent.client.ui.ide/src/org/eclipse/mylyn/docs/intent/client/ui/ide/builder/IntentProjectListener.java
@@ -125,24 +125,26 @@
 	 */
 	public void handleOpenedProject(IProject project) {
 		// Step 1: determine if the opened project is a valid Intent project
-		try {
-			if (project.isAccessible() && project.hasNature(IntentNature.NATURE_ID)) {
-				// Step 2: determine if it is already handled by this project listener
-				if (projectManagers.get(project.getName()) == null) {
-					// Step 3: if not, create an Intent project manager for this project
-					IntentProjectManager projectManager = getIntentProjectManager(project);
-					try {
-						IntentLogger.getInstance().log(LogType.LIFECYCLE,
-								"[IntentProjectListener] Handling project " + project.getName());
-						projectManager.connect();
-						projectManagers.put(project.getName(), projectManager);
-					} catch (RepositoryConnectionException e) {
-						IntentUiLogger.logError(e);
+		synchronized(projectManagers) {
+			try {
+				if (project.isAccessible() && project.hasNature(IntentNature.NATURE_ID)) {
+					// Step 2: determine if it is already handled by this project listener
+					if (projectManagers.get(project.getName()) == null) {
+						// Step 3: if not, create an Intent project manager for this project
+						IntentProjectManager projectManager = getIntentProjectManager(project);
+						try {
+							IntentLogger.getInstance().log(LogType.LIFECYCLE,
+									"[IntentProjectListener] Handling project " + project.getName());
+							projectManager.connect();
+							projectManagers.put(project.getName(), projectManager);
+						} catch (RepositoryConnectionException e) {
+							IntentUiLogger.logError(e);
+						}
 					}
 				}
+			} catch (CoreException e) {
+				IntentUiLogger.logError(e);
 			}
-		} catch (CoreException e) {
-			IntentUiLogger.logError(e);
 		}
 	}
 
diff --git a/plugins/org.eclipse.mylyn.docs.intent.client.ui.ide/src/org/eclipse/mylyn/docs/intent/client/ui/ide/navigator/UpdateProblemsViewJob.java b/plugins/org.eclipse.mylyn.docs.intent.client.ui.ide/src/org/eclipse/mylyn/docs/intent/client/ui/ide/navigator/UpdateProblemsViewJob.java
index 037effe..6eaf594 100644
--- a/plugins/org.eclipse.mylyn.docs.intent.client.ui.ide/src/org/eclipse/mylyn/docs/intent/client/ui/ide/navigator/UpdateProblemsViewJob.java
+++ b/plugins/org.eclipse.mylyn.docs.intent.client.ui.ide/src/org/eclipse/mylyn/docs/intent/client/ui/ide/navigator/UpdateProblemsViewJob.java
@@ -132,7 +132,7 @@
 			statusIsProxy = statusIsProxy || status.eResource() == null
 					|| status.getTarget().eResource() == null;
 
-			if (project.isAccessible() && !statusIsProxy) {
+			if (project.isAccessible() && project.exists() && !statusIsProxy) {
 				marker = project.createMarker("org.eclipse.core.resources.problemmarker");
 				if (status.getSeverity() == CompilationStatusSeverity.WARNING) {
 					marker.setAttribute(IMarker.SEVERITY, IMarker.SEVERITY_WARNING);
diff --git a/tests/org.eclipse.mylyn.docs.intent.client.ui.test/src/org/eclipse/mylyn/docs/intent/client/ui/test/util/AbstractIntentUITest.java b/tests/org.eclipse.mylyn.docs.intent.client.ui.test/src/org/eclipse/mylyn/docs/intent/client/ui/test/util/AbstractIntentUITest.java
index a12b4ea..111e953 100644
--- a/tests/org.eclipse.mylyn.docs.intent.client.ui.test/src/org/eclipse/mylyn/docs/intent/client/ui/test/util/AbstractIntentUITest.java
+++ b/tests/org.eclipse.mylyn.docs.intent.client.ui.test/src/org/eclipse/mylyn/docs/intent/client/ui/test/util/AbstractIntentUITest.java
@@ -182,31 +182,34 @@
 		}
 
 		// Step 2: clean workspace
-		if (intentProject != null) {
-			IntentRepositoryManager.INSTANCE.deleteRepository(intentProject.getName());
-			waitForAllOperationsInUIThread();
+		try {
+			if (intentProject != null) {
+				IntentRepositoryManager.INSTANCE.deleteRepository(intentProject.getName());
+				waitForAllOperationsInUIThread();
 
-			intentProject.delete(true, true, new NullProgressMonitor());
+				intentProject.delete(true, true, new NullProgressMonitor());
+			}
+		} finally {
+			IntentEditorActivator.getDefault().getLog().removeLogListener(this);
+			WorkspaceUtils.cleanWorkspace();
+
+			// Step 3: unregister repository listener and deactivate advance loggin
+			if (repositoryListener != null) {
+				Platform.removeLogListener(repositoryListener);
+			}
+			IEclipsePreferences node = InstanceScope.INSTANCE.getNode(IntentEditorActivator.getDefault()
+					.getBundle().getSymbolicName());
+			node.putBoolean(IntentPreferenceConstants.ACTIVATE_ADVANCE_LOGGING, false);
+
+			// Step 4: setting all fields to null (to avoid memory leaks)
+			setAllFieldsToNull();
+
+			// Step 5: remove all dynamically added contributions
+			while (dynamicExtensionCounter > 0) {
+				removeLastExtension();
+			}
+			super.tearDown();
 		}
-		IntentEditorActivator.getDefault().getLog().removeLogListener(this);
-		WorkspaceUtils.cleanWorkspace();
-
-		// Step 3: unregister repository listener and deactivate advance loggin
-		if (repositoryListener != null) {
-			Platform.removeLogListener(repositoryListener);
-		}
-		IEclipsePreferences node = InstanceScope.INSTANCE.getNode(IntentEditorActivator.getDefault()
-				.getBundle().getSymbolicName());
-		node.putBoolean(IntentPreferenceConstants.ACTIVATE_ADVANCE_LOGGING, false);
-
-		// Step 4: setting all fields to null (to avoid memory leaks)
-		setAllFieldsToNull();
-
-		// Step 5: remove all dynamically added contributions
-		while (dynamicExtensionCounter > 0) {
-			removeLastExtension();
-		}
-		super.tearDown();
 	}
 
 	/**
@@ -315,15 +318,12 @@
 			public void run(IProgressMonitor monitor) throws CoreException {
 				IProject project = WorkspaceUtils.createProject(projectName, monitor);
 				ToggleNatureAction.toggleNature(project);
-
-				IntentRepositoryInitializer.initializeContent(projectName, intentDocumentContent);
-
-				// Step 3 : initializing all useful informations
 				intentProject = project;
 				setUpRepository(project);
 			}
 		};
 		ResourcesPlugin.getWorkspace().run(create, null);
+		IntentRepositoryInitializer.initializeContent(projectName, intentDocumentContent);
 	}
 
 	/**