Index: plugins/org.jboss.tools.openshift.egit.core/src/org/jboss/tools/openshift/egit/core/EGitUtils.java
===================================================================
--- plugins/org.jboss.tools.openshift.egit.core/src/org/jboss/tools/openshift/egit/core/EGitUtils.java	(revision 39296)
+++ plugins/org.jboss.tools.openshift.egit.core/src/org/jboss/tools/openshift/egit/core/EGitUtils.java	(working copy)
@@ -26,6 +26,7 @@
 import java.util.regex.Pattern;
 
 import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.Assert;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IProgressMonitor;
@@ -118,6 +119,17 @@
 		return provider != null
 				&& EGIT_TEAM_PROVIDER_ID.equals(provider.getID());
 	}
+	
+	public static IProject[] getEgitSharedProjects() {
+		ArrayList<IProject> list = new ArrayList<IProject>();
+		IProject[] all = ResourcesPlugin.getWorkspace().getRoot().getProjects();
+		for( int i = 0; i < all.length; i++ ) {
+			if( isSharedWithGit(all[i])) {
+				list.add(all[i]);
+			}
+		}
+		return (IProject[]) list.toArray(new IProject[list.size()]);
+	}
 
 	/**
 	 * Returns <code>true</code> if the given project exists and has a .git
Index: plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/core/behaviour/ExpressPublishMethod.java
===================================================================
--- plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/core/behaviour/ExpressPublishMethod.java	(revision 39296)
+++ plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/core/behaviour/ExpressPublishMethod.java	(working copy)
@@ -100,7 +100,12 @@
 		if( module.length > 1 )
 			return 0;
 		
+		// Magic Project
 		String destProjName = ExpressServerUtils.getExpressDeployProject(behaviour.getServer());
+		
+		if( isInDestProjectTree(destProjName, module))
+			return IServer.PUBLISH_STATE_NONE;
+		
 		IProject destProj = ResourcesPlugin.getWorkspace().getRoot().getProject(destProjName);
 		
 		if( destProj.equals(module[module.length-1].getProject()))
@@ -138,6 +143,19 @@
 		}
 		return 0;
 	}
+	
+	protected boolean isInDestProjectTree(String magicProject, IModule[] module) {
+		IProject magic = magicProject == null ? null : 
+			ResourcesPlugin.getWorkspace().getRoot().getProject(magicProject);
+		IProject moduleProject = module == null ? null : module.length == 0 ? null : module[module.length-1].getProject();
+		if( magic == null || moduleProject == null )
+			return false;
+		
+		IPath moduleProjectRoot = moduleProject.getLocation();
+		IPath magicProjectRoot = magic.getLocation();
+		boolean ret = magicProjectRoot.isPrefixOf(moduleProjectRoot);
+		return ret;
+	}
 
 	protected PushOperationResult commitAndPushProject(IProject p,
 			DeployableServerBehavior behaviour, IProgressMonitor monitor) throws CoreException {
Index: plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/behaviour/ExpressDetailsComposite.java
===================================================================
--- plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/behaviour/ExpressDetailsComposite.java	(revision 39296)
+++ plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/behaviour/ExpressDetailsComposite.java	(working copy)
@@ -59,6 +59,7 @@
 import org.jboss.ide.eclipse.as.ui.editor.IDeploymentTypeUI.IServerModeUICallback;
 import org.jboss.ide.eclipse.as.ui.editor.ServerWorkingCopyPropertyComboCommand;
 import org.jboss.ide.eclipse.as.ui.editor.ServerWorkingCopyPropertyCommand;
+import org.jboss.tools.openshift.egit.core.EGitUtils;
 import org.jboss.tools.openshift.express.internal.core.behaviour.ExpressServerUtils;
 import org.jboss.tools.openshift.express.internal.core.console.UserModel;
 import org.jboss.tools.openshift.express.internal.ui.wizard.ConnectToOpenShiftWizardModel;
@@ -206,7 +207,7 @@
 	}
 
 	private void resetDeployProjectCombo() {
-		IProject[] p = ExpressServerUtils.findProjectsForApplication(fapplication);
+		IProject[] p = getPossibleProjectsForApp(fapplication);
 		String[] names = p == null ? new String[0] : new String[p.length];
 		for( int i = 0; i < names.length; i++ ) {
 			names[i] = p[i].getName();
@@ -221,6 +222,11 @@
 		}
 	}
 	
+	private IProject[] getPossibleProjectsForApp(IApplication app) {
+		//return ExpressServerUtils.findProjectsForApplication(app);
+		return EGitUtils.getEgitSharedProjects();
+	}
+	
 	private void createWidgets(Composite composite) {
 		composite.setLayout(new GridLayout(2, false));
 		Label userLabel = new Label(composite, SWT.NONE);
@@ -456,7 +462,7 @@
 				appNameCombo.select(select);
 			}
 		}
-		IProject[] p = ExpressServerUtils.findProjectsForApplication(fapplication);
+		IProject[] p = getPossibleProjectsForApp(fapplication);
 		importLink.setEnabled(p == null || p.length == 0);
 		resetDeployProjectCombo();
 	}
@@ -475,7 +481,7 @@
 			else if( app == null || app.equals("")) {
 				error = "Please select an application from the combo below.";
 			} else {
-				IProject[] p = ExpressServerUtils.findProjectsForApplication(fapplication);
+				IProject[] p = getPossibleProjectsForApp(fapplication);
 				if (p == null || p.length == 0) {
 					error = "Your workspace does not have a project corresponding to " + app + ". Please import one.";
 				}
@@ -575,7 +581,7 @@
 		this.user = fuser.getRhlogin();
 		
 		for( int i = 0; i < appList.size(); i++ ) {
-			projectsPerApp.put(appList.get(i), ExpressServerUtils.findProjectsForApplication(appList.get(i)));
+			projectsPerApp.put(appList.get(i), getPossibleProjectsForApp(appList.get(i)));
 		}
 		
 		IProject[] possibleProjects = projectsPerApp.get(fapplication);
Index: plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/behaviour/ExpressWizardFragment.java
===================================================================
--- plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/behaviour/ExpressWizardFragment.java	(revision 39296)
+++ plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/behaviour/ExpressWizardFragment.java	(working copy)
@@ -10,7 +10,6 @@
  *******************************************************************************/
 package org.jboss.tools.openshift.express.internal.ui.behaviour;
 
-import org.eclipse.core.resources.IProject;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.jobs.Job;
@@ -25,7 +24,6 @@
 import org.jboss.tools.openshift.express.internal.core.behaviour.ExpressServerUtils;
 import org.jboss.tools.openshift.express.internal.core.console.UserModel;
 
-import com.openshift.express.client.IApplication;
 import com.openshift.express.client.IUser;
 
 public class ExpressWizardFragment extends WizardFragment implements ICompletable {
@@ -71,16 +69,5 @@
 		super.performFinish(monitor);
 		IUser user = composite.getUser();
 		UserModel.getDefault().addUser(user);
-		IApplication app = composite.getApplication();
-		
-		// Only clone and import if there's no project already in existence
-		IProject p = ExpressServerUtils.findProjectForApplication(app);
-		System.out.println(p);
-		if( p == null ) {
-			System.out.println(p);
-			// clone and import
-			
-			// If we had to clone and import, we also need to add the module ??
-		}
 	}
 }
