Index: src/org/jboss/tools/openshift/express/internal/ui/common/OpenShiftUIException.java
===================================================================
--- src/org/jboss/tools/openshift/express/internal/ui/common/OpenShiftUIException.java	(revision 0)
+++ src/org/jboss/tools/openshift/express/internal/ui/common/OpenShiftUIException.java	(revision 0)
@@ -0,0 +1,27 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.openshift.express.internal.ui.common;
+
+import org.jboss.tools.openshift.express.client.OpenShiftException;
+
+public class OpenShiftUIException extends OpenShiftException {
+
+	private static final long serialVersionUID = 1L;
+
+	public OpenShiftUIException(String message, Object... arguments) {
+		super(message, arguments);
+	}
+
+	public OpenShiftUIException(Throwable cause, String message, Object... arguments) {
+		super(cause, message, arguments);
+	}
+
+}
Index: src/org/jboss/tools/openshift/express/internal/ui/common/WorkspaceProjectPresentException.java
===================================================================
--- src/org/jboss/tools/openshift/express/internal/ui/common/WorkspaceProjectPresentException.java	(revision 0)
+++ src/org/jboss/tools/openshift/express/internal/ui/common/WorkspaceProjectPresentException.java	(revision 0)
@@ -0,0 +1,20 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.openshift.express.internal.ui.common;
+
+public class WorkspaceProjectPresentException extends OpenShiftUIException {
+
+	private static final long serialVersionUID = 1L;
+
+	public WorkspaceProjectPresentException(String message, Object... arguments) {
+		super(message, arguments);
+	}
+}
Index: src/org/jboss/tools/openshift/express/internal/ui/wizard/ImportProjectWizard.java
===================================================================
--- src/org/jboss/tools/openshift/express/internal/ui/wizard/ImportProjectWizard.java	(revision 37102)
+++ src/org/jboss/tools/openshift/express/internal/ui/wizard/ImportProjectWizard.java	(working copy)
@@ -33,6 +33,7 @@
 import org.jboss.tools.common.ui.WizardUtils;
 import org.jboss.tools.openshift.express.client.OpenShiftException;
 import org.jboss.tools.openshift.express.internal.ui.OpenShiftUIActivator;
+import org.jboss.tools.openshift.express.internal.ui.common.WorkspaceProjectPresentException;
 
 /**
  * @author André Dietisheim
@@ -79,35 +80,37 @@
 									model.addToExistingProject(monitor);
 								}
 								return Status.OK_STATUS;
+							} catch (final WorkspaceProjectPresentException e) {
+								openWarning("Project already present", e.getMessage());
+								return Status.CANCEL_STATUS;
 							} catch (IOException e) {
-								status = OpenShiftUIActivator.createErrorStatus(
+								return OpenShiftUIActivator.createErrorStatus(
 										"Could not copy openshift configuration files to project {0}", e,
 										model.getProjectName());
-								return status;
 							} catch (OpenShiftException e) {
-								status = OpenShiftUIActivator.createErrorStatus(
+								return OpenShiftUIActivator.createErrorStatus(
 										"Could not import project to the workspace.", e);
 							} catch (URISyntaxException e) {
-								status = OpenShiftUIActivator.createErrorStatus(
+								return OpenShiftUIActivator.createErrorStatus(
 										"The url of the remote git repository is not valid", e);
 							} catch (InvocationTargetException e) {
 								if (isTransportException(e)) {
 									TransportException te = getTransportException(e);
-									status = OpenShiftUIActivator
+									return OpenShiftUIActivator
 											.createErrorStatus(
 													"Could not clone the repository. Authentication failed.\n"
 															+ " Please make sure that you added your private key to the ssh preferences.",
 													te);
 								} else {
-									status = OpenShiftUIActivator.createErrorStatus(
+									return OpenShiftUIActivator.createErrorStatus(
 											"An exception occurred while creating local git repository.", e);
 								}
 							} catch (Exception e) {
-								status = OpenShiftUIActivator.createErrorStatus(
+								return OpenShiftUIActivator.createErrorStatus(
 										"Could int import project to the workspace.", e);
 							}
-							return status;
 						}
+
 					}, getContainer());
 			IStatus status = queue.poll(10, TimeUnit.SECONDS);
 			return status != null
@@ -121,19 +124,31 @@
 	}
 
 	private boolean askForConfirmation(final String applicationName, final String projectName) {
-		final boolean[] confirmed = new boolean[1]; 
+		final boolean[] confirmed = new boolean[1];
 		getShell().getDisplay().syncExec(new Runnable() {
 
 			@Override
 			public void run() {
-				confirmed[0] = MessageDialog.openConfirm(getShell(), 
-						NLS.bind("Import OpenShift Application ", applicationName), 
+				confirmed[0] = MessageDialog.openConfirm(getShell(),
+						NLS.bind("Import OpenShift Application ", applicationName),
 						NLS.bind(
 								"OpenShift application {0} will be enabled on project {1} by copying OpenShift " +
-								"configuration and enable Git for the project.\n " +
-						"This cannot be undone. Do you wish to continue ?", applicationName, projectName));
-			}});
-		return confirmed[0]; 
+										"configuration and enable Git for the project.\n " +
+										"This cannot be undone. Do you wish to continue ?", applicationName,
+								projectName));
+			}
+		});
+		return confirmed[0];
+	}
+
+	private void openWarning(final String title, final String message) {
+		getShell().getDisplay().syncExec(new Runnable() {
+
+			@Override
+			public void run() {
+				MessageDialog.openWarning(getShell(), title, message);
+			}
+		});
 	}
 
 	@Override
Index: src/org/jboss/tools/openshift/express/internal/ui/wizard/ImportProjectWizardModel.java
===================================================================
--- src/org/jboss/tools/openshift/express/internal/ui/wizard/ImportProjectWizardModel.java	(revision 37103)
+++ src/org/jboss/tools/openshift/express/internal/ui/wizard/ImportProjectWizardModel.java	(working copy)
@@ -33,6 +33,7 @@
 import org.eclipse.egit.core.RepositoryUtil;
 import org.eclipse.egit.core.op.CloneOperation;
 import org.eclipse.egit.ui.Activator;
+import org.eclipse.egit.ui.internal.clone.GitCloneWizard;
 import org.eclipse.jgit.lib.Constants;
 import org.eclipse.jgit.lib.Repository;
 import org.eclipse.jgit.transport.JschConfigSessionFactory;
@@ -57,6 +58,7 @@
 import org.jboss.tools.openshift.express.internal.core.behaviour.ExpressServerUtils;
 import org.jboss.tools.openshift.express.internal.ui.OpenShiftUIActivator;
 import org.jboss.tools.openshift.express.internal.ui.common.FileUtils;
+import org.jboss.tools.openshift.express.internal.ui.common.WorkspaceProjectPresentException;
 import org.jboss.tools.openshift.express.internal.ui.wizard.projectimport.GeneralProjectImportOperation;
 import org.jboss.tools.openshift.express.internal.ui.wizard.projectimport.MavenProjectImportOperation;
 
@@ -152,6 +154,25 @@
 		return (String) getProperty(REPOSITORY_PATH);
 	}
 
+	/**
+	 * Returns the destination folder that the OpenShift application will get
+	 * cloned to.
+	 * 
+	 * @return the destination that the application will get cloned to.
+	 */
+	private File getCloneDestination() {
+		String repositoryPath = getRepositoryPath();
+		if (repositoryPath == null
+				|| repositoryPath.length() == 0) {
+			return null;
+		}
+		IApplication application = getApplication();
+		if (application == null) {
+			return null;
+		}
+		return new File(getRepositoryPath(), application.getName());
+	}
+
 	public boolean isNewProject() {
 		return (Boolean) getProperty(NEW_PROJECT);
 	}
@@ -241,6 +262,21 @@
 	public void importProject(IProgressMonitor monitor)
 			throws OpenShiftException, CoreException, InterruptedException, URISyntaxException,
 			InvocationTargetException {
+		File cloneDestination = getCloneDestination();
+		if (cloneDestination != null
+				&& cloneDestination.exists()) {
+			throw new WorkspaceProjectPresentException(
+					NLS.bind(
+							"There's alread y a folder at {0}. The new OpenShift project would overwrite it. " +
+							"Please choose another destination to clone to.",
+							cloneDestination.getAbsolutePath()));
+		}
+		if (doesProjectExist(getApplicationName())) {
+			throw new WorkspaceProjectPresentException(
+					NLS.bind(
+							"There's already a project {0} in your workspace. The new OpenShift project would overwrite it.",
+							getApplicationName()));
+		}
 		File repositoryFolder = cloneRepository(monitor);
 		List<IProject> importedProjects = importMavenProject(repositoryFolder, monitor);
 		connectToGitRepo(importedProjects, repositoryFolder, monitor);
@@ -294,7 +330,6 @@
 		shareProject(monitor);
 		createServerAdapterIfRequired(monitor);
 	}
-	
 
 	public void mergeWithApplicationRepository(Repository repository, IProgressMonitor monitor)
 			throws MalformedURLException, URISyntaxException, IOException, OpenShiftException, CoreException,
@@ -308,6 +343,15 @@
 		return ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
 	}
 
+	private boolean doesProjectExist(String name) {
+		if (name == null) {
+			return false;
+		}
+		IProject project = getProject(name);
+		return project != null
+				&& project.exists();
+	}
+
 	public boolean projectExists(final File gitProjectFolder) {
 		String projectName = gitProjectFolder.getName();
 		IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
@@ -352,9 +396,7 @@
 	 */
 	private File cloneRepository(IProgressMonitor monitor)
 			throws OpenShiftException, InvocationTargetException, InterruptedException, URISyntaxException {
-		IApplication application = getApplication();
-		File destination = new File(getRepositoryPath(), application.getName());
-		return cloneRepository(destination, monitor);
+		return cloneRepository(getCloneDestination(), monitor);
 	}
 
 	private File cloneRepository(File destination, IProgressMonitor monitor)
@@ -367,9 +409,6 @@
 
 	private void cloneRepository(String uri, File destination, IProgressMonitor monitor)
 			throws OpenShiftException, URISyntaxException, InvocationTargetException, InterruptedException {
-		if (destination.exists()) {
-			FileUtil.completeDelete(destination);
-		}
 		ensureEgitUIIsStarted();
 		URIish gitUri = new URIish(uri);
 		CloneOperation cloneOperation =
