diff --git a/ant/org.eclipse.ant.tests.ui/Ant Debug Tests/org/eclipse/ant/tests/ui/debug/AbstractAntDebugTest.java b/ant/org.eclipse.ant.tests.ui/Ant Debug Tests/org/eclipse/ant/tests/ui/debug/AbstractAntDebugTest.java
index 07b2ac8..f8cbf60 100644
--- a/ant/org.eclipse.ant.tests.ui/Ant Debug Tests/org/eclipse/ant/tests/ui/debug/AbstractAntDebugTest.java
+++ b/ant/org.eclipse.ant.tests.ui/Ant Debug Tests/org/eclipse/ant/tests/ui/debug/AbstractAntDebugTest.java
@@ -462,7 +462,9 @@
 
 		Object suspendee= waiter.waitForEvent();
 		setEventSet(waiter.getEventSet());
-		assertNotNull("Program did not terminate.", suspendee);
+		if (suspendee == null) {
+			throw new TestAgainException("Retest - The program did not terminate");
+		}
 		AntDebugTarget target = (AntDebugTarget)suspendee;
 		assertTrue("program should have exited", target.isTerminated() || target.isDisconnected());
 		return target;
@@ -514,7 +516,6 @@
 	 * the target is terminated. This avoids defunct processes on linux.
 	 */
 	protected void terminateAndRemove(AntDebugTarget debugTarget) {
-	  
 		if (debugTarget != null && !(debugTarget.isTerminated() || debugTarget.isDisconnected())) {
 			DebugEventWaiter waiter = new DebugElementEventWaiter(DebugEvent.TERMINATE, debugTarget);
 			try {
@@ -531,9 +532,10 @@
 				}
 				debugTarget.terminate();
 				Object event = waiter.waitForEvent();
-				assertNotNull("No terminate event was recieved", event);
+				if (event == null) {
+					throw new TestAgainException("Retest - Program did not terminate");
+				}
                 getLaunchManager().removeLaunch(debugTarget.getLaunch());
-                debugTarget = null;
 			} catch (CoreException e) {
 			}
 		}
@@ -542,7 +544,9 @@
         DebugEventWaiter waiter = new DebugElementEventWaiter(DebugEvent.MODEL_SPECIFIC, this);
         DebugPlugin.getDefault().fireDebugEventSet(new DebugEvent[]{new DebugEvent(this, DebugEvent.MODEL_SPECIFIC)});
         Object event = waiter.waitForEvent();
-        assertNotNull("The model specific event was never recieved", event);
+        if (event == null) {
+			throw new TestAgainException("Retest - The model specific event was never recieved");
+		}
 	}
 	
 	/**
diff --git a/ant/org.eclipse.ant.tests.ui/Ant UI Test Suite.launch b/ant/org.eclipse.ant.tests.ui/Ant UI Test Suite.launch
index e7f3296..ea40d75 100644
--- a/ant/org.eclipse.ant.tests.ui/Ant UI Test Suite.launch
+++ b/ant/org.eclipse.ant.tests.ui/Ant UI Test Suite.launch
@@ -1,44 +1,44 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
-<booleanAttribute key="append.args" value="true"/>
-<booleanAttribute key="askclear" value="false"/>
-<booleanAttribute key="automaticAdd" value="true"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="true"/>
-<booleanAttribute key="clearws" value="true"/>
-<booleanAttribute key="clearwslog" value="false"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
-<booleanAttribute key="default" value="true"/>
-<stringAttribute key="deselected_workspace_plugins" value="org.eclipse.wst.jsdt.core.tests.model,org.eclipse.wst.jsdt.debug.rhino.tests,org.chromium.sdk,org.chromium.debug.ui,com.ibm.api.scans.servertools,org.eclipse.jdt.core.tests.compiler,org.chromium.debug,org.eclipse.pde.api.tools.tests,org.eclipse.wst.jsdt.debug.chrome,org.eclipse.e4.languages.javascript.junit,org.chromium.debug.core,org.eclipse.wst.jsdt.debug.core.tests,org.eclipse.wst.jsdt.debug.crossfire,org.eclipse.jdt.core.tests.builder,org.eclipse.e4.languages.javascript.junit.test,org.eclipse.wst.jsdt.core.tests.compiler"/>
-<booleanAttribute key="includeOptional" value="true"/>
-<stringAttribute key="location" value="${workspace_loc}/../ant-junit-workspace"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/AntUITests.java"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="1"/>
-</listAttribute>
-<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
-<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
-<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
-<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/>
-<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.ant.tests.ui.testplugin.AntUITests"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.ant.tests.ui"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xms40m -Xmx384m -XX:MaxPermSize=128M"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
-<booleanAttribute key="run_in_ui_thread" value="true"/>
-<stringAttribute key="selected_target_plugins" value="org.eclipse.equinox.launcher@default:default,org.eclipse.equinox.p2.reconciler.dropins@default:default,org.eclipse.jdt.core.manipulation@default:default,org.eclipse.osgi.services@default:default,org.eclipse.equinox.simpleconfigurator@1:true,org.eclipse.equinox.util@default:default,org.eclipse.ecf@default:default,org.eclipse.core.runtime.compatibility.auth@default:default,org.eclipse.update.core@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.equinox.p2.director.app@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.team.svn.ui@default:default,org.eclipse.compare.core@default:default,com.ibm.icu@default:default,org.eclipse.jdt.apt.pluggable.core@default:default,org.mortbay.jetty.server@default:default,org.eclipse.jdt.ui@default:default,org.junit*3.8.2.v3_8_2_v20100427-1100@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,javax.servlet.jsp@default:default,org.eclipse.jdt.doc.isv@default:default,org.eclipse.equinox.p2.publisher@default:default,org.eclipse.jdt@default:default,org.eclipse.compare@default:default,org.polarion.eclipse.team.svn.connector@default:default,org.eclipse.equinox.app@default:default,org.eclipse.ui.navigator.resources@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.databinding.observable@default:default,org.slf4j.api@default:default,ch.qos.logback.classic@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.ui.workbench.compatibility@default:false,org.polarion.eclipse.team.svn.connector.svnkit@default:default,org.objectweb.asm@default:default,org.eclipse.equinox.p2.repository.tools@default:default,org.eclipse.core.boot@default:default,org.eclipse.platform@default:default,org.eclipse.jface@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.wst.jsdt.support.ie@default:default,javax.servlet@default:default,org.eclipse.ui.ide@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.swt@default:default,org.eclipse.core.resources@default:default,org.eclipse.equinox.p2.extensionlocation@default:default,org.eclipse.ui.forms@default:default,org.eclipse.team.svn.core@default:default,org.eclipse.equinox.simpleconfigurator.manipulator@default:default,org.eclipse.ui.intro.universal@default:default,org.eclipse.pde@default:default,org.eclipse.equinox.p2.updatesite@default:default,org.eclipse.jdt.doc.user@default:default,org.eclipse.core.commands@default:default,org.eclipse.ui.workbench.texteditor@default:default,org.eclipse.ui.views.log@default:default,org.eclipse.ui.navigator@default:default,org.eclipse.help.base@default:default,org.eclipse.help.webapp@default:default,com.ibm.piiclipse.core@default:default,org.eclipse.update.ui@default:default,org.eclipse.ui.cheatsheets@default:default,org.eclipse.team.svn.help@default:default,org.eclipse.equinox.p2.ui.sdk@default:default,org.eclipse.team.core@default:default,org.apache.lucene.analysis@default:default,org.apache.commons.el@default:default,org.eclipse.equinox.jsp.jasper.registry@default:default,org.eclipse.rcp@default:default,org.eclipse.pde.runtime@default:default,org.eclipse.equinox.p2.ui.sdk.scheduler@default:default,org.eclipse.equinox.p2.console@default:default,org.eclipse.osgi.util@default:default,org.eclipse.equinox.p2.updatechecker@default:default,org.eclipse.ui@default:default,org.eclipse.team.cvs.ui@default:default,com.jcraft.jsch@default:default,org.eclipse.equinox.event@default:default,org.eclipse.ui.net@default:default,org.eclipse.pde.ds.core@default:default,org.eclipse.sdk@default:default,org.eclipse.pde.ui.templates@default:default,org.eclipse.pde.launching@default:default,org.eclipse.core.net.linux.x86@default:false,org.eclipse.equinox.http.servlet@default:default,org.eclipse.ltk.ui.refactoring@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.wst.jsdt.support.firefox@default:default,org.eclipse.platform.doc.isv@default:default,org.apache.commons.logging@default:default,org.eclipse.jface.text@default:default,org.junit4@default:default,org.junit*4.8.1.v4_8_1_v20100427-1100@default:default,org.eclipse.core.net@default:default,org.eclipse.equinox.p2.metadata@default:default,com.ibm.piiclipse.help@default:default,org.eclipse.equinox.p2.director@default:default,org.eclipse.jdt.apt.ui@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.jdt.apt.core@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,org.eclipse.net4j.jms.api*3.0.0.v20100519-1649@default:default,org.eclipse.pde.junit.runtime@default:default,org.apache.ant@default:default,org.eclipse.core.expressions@default:default,org.apache.commons.httpclient@default:default,org.polarion.eclipse.team.svn.connector.svnkit15@default:default,org.hamcrest.core@default:default,org.eclipse.pde.ua.core@default:default,org.eclipse.team.svn@default:default,com.ibm.piiclipse.ui@default:default,org.eclipse.cvs@default:default,org.eclipse.equinox.frameworkadmin@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.ui.ide.application@default:default,org.eclipse.jdt.compiler.tool@default:false,org.mortbay.jetty.util@default:default,org.eclipse.help.appserver@default:default,org.eclipse.jdt.junit.runtime@default:default,org.eclipse.equinox.p2.ui@default:default,org.eclipse.jdt.junit@default:default,org.eclipse.help.ui@default:default,org.eclipse.equinox.http.registry@default:default,org.apache.commons.codec@default:default,org.eclipse.ui.presentations.r21@default:default,org.eclipse.equinox.p2.metadata.generator@default:default,org.eclipse.ui.views@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.ui.intro@default:default,org.eclipse.jdt.compiler.apt@default:false,org.eclipse.equinox.launcher.gtk.linux.x86@default:false,org.eclipse.core.runtime@default:true,org.eclipse.equinox.jsp.jasper@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.p2.touchpoint.eclipse@default:default,org.eclipse.swt.gtk.linux.x86@default:false,org.sat4j.core@default:default,org.eclipse.ecf.ssl@default:false,org.apache.lucene@default:default,org.eclipse.ui.browser@default:default,org.eclipse.pde.build@default:default,org.eclipse.net4j.jms.api*3.0.0.v20100614-1655@default:default,org.eclipse.update.configurator@3:true,org.eclipse.jsch.core@default:default,org.eclipse.pde.ua.ui@default:default,org.eclipse.ecf.provider.filetransfer.httpclient.ssl@default:false,org.eclipse.core.jobs@default:default,org.eclipse.team.svn.resource.ignore.rules.jdt@default:default,org.eclipse.core.filesystem.linux.x86@default:false,org.eclipse.equinox.concurrent@default:default,org.eclipse.equinox.common@2:true,org.eclipse.core.filebuffers@default:default,org.eclipse.pde.ds.ui@default:default,org.eclipse.ui.editors@default:default,org.eclipse.core.databinding.beans@default:default,ch.qos.logback.slf4j@default:false,org.eclipse.jsch.ui@default:default,org.eclipse.equinox.security.ui@default:default,org.apache.jasper@default:default,org.eclipse.team.cvs.core@default:default,org.eclipse.equinox.security@default:default,org.eclipse.update.scheduler@default:default,org.eclipse.team.ui@default:default,ch.qos.logback.core@default:default,org.eclipse.equinox.frameworkadmin.equinox@default:default,org.eclipse.equinox.p2.directorywatcher@default:default,org.eclipse.ui.views.properties.tabbed@default:default,org.eclipse.core.runtime.compatibility@default:default,org.eclipse.equinox.p2.operations@default:default,org.eclipse.jdt.core@default:default,org.eclipse.releng.tools@default:default,org.eclipse.core.filesystem@default:default,org.eclipse.team.cvs.ssh2@default:default,org.eclipse.update.core.linux@default:false,org.eclipse.equinox.p2.touchpoint.natives@default:default,org.eclipse.ecf.provider.filetransfer.httpclient@default:default,org.eclipse.equinox.http.jetty@default:default,org.eclipse.text@default:default,javax.mail.glassfish@default:default,org.eclipse.equinox.p2.garbagecollector@default:default,org.eclipse.help@default:default,org.eclipse.equinox.p2.ql@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.ltk.core.refactoring@default:default,org.eclipse.core.databinding@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.jarprocessor@default:default,org.polarion.eclipse.team.svn.connector.svnkit16@default:default,org.sat4j.pb@default:default,org.eclipse.jdt.junit.core@default:default,org.eclipse.search@default:default,org.eclipse.jdt.junit4.runtime@default:default,org.eclipse.osgi@-1:true,org.eclipse.ecf.provider.filetransfer@default:default"/>
-<stringAttribute key="selected_workspace_plugins" value="org.eclipse.wst.jsdt.debug.ui@default:default,org.eclipse.core.variables@default:default,org.eclipse.debug.core@default:default,org.eclipse.wst.jsdt.core@default:default,org.eclipse.pde.api.tools.ui@default:default,org.eclipse.platform.doc.user@default:default,org.eclipse.debug.ui@default:default,org.eclipse.ant.ui@default:default,org.eclipse.wst.jsdt.doc@default:default,org.mozilla.javascript@default:default,org.eclipse.jdt.debug@default:default,org.eclipse.ant.tests.core@default:default,org.eclipse.ant.tests.ui@default:default,org.eclipse.wst.jsdt.debug.core@default:default,org.eclipse.test.performance@default:default,org.eclipse.ui.externaltools@default:default,org.eclipse.jdt.debug.ui@default:default,org.eclipse.wst.jsdt.manipulation@default:default,org.eclipse.wst.jsdt.debug.transport@default:default,org.eclipse.ui.console@default:default,org.eclipse.wst.jsdt.debug.rhino.debugger@default:default,org.eclipse.pde.doc.user@default:default,org.eclipse.pde.api.tools@default:default,org.eclipse.core.externaltools@default:default,org.eclipse.jdt.launching@default:default,org.eclipse.ant.core@default:default,org.eclipse.ant.launching@default:default,org.eclipse.wst.jsdt.ui@default:default,org.eclipse.wst.jsdt.debug.rhino@default:default"/>
-<booleanAttribute key="show_selected_only" value="false"/>
-<booleanAttribute key="tracing" value="false"/>
-<booleanAttribute key="useCustomFeatures" value="false"/>
-<booleanAttribute key="useDefaultConfig" value="true"/>
-<booleanAttribute key="useDefaultConfigArea" value="false"/>
-<booleanAttribute key="useProduct" value="true"/>
-</launchConfiguration>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
+<booleanAttribute key="append.args" value="true"/>
+<booleanAttribute key="askclear" value="false"/>
+<booleanAttribute key="automaticAdd" value="true"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="true"/>
+<booleanAttribute key="clearws" value="true"/>
+<booleanAttribute key="clearwslog" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
+<booleanAttribute key="default" value="true"/>
+<stringAttribute key="deselected_workspace_plugins" value="org.eclipse.wst.jsdt.core.tests.model,org.eclipse.wst.jsdt.debug.rhino.tests,org.chromium.sdk,org.chromium.debug.ui,com.ibm.api.scans.servertools,org.eclipse.jdt.core.tests.compiler,org.chromium.debug,org.eclipse.pde.api.tools.tests,org.eclipse.wst.jsdt.debug.chrome,org.eclipse.e4.languages.javascript.junit,org.chromium.debug.core,org.eclipse.wst.jsdt.debug.core.tests,org.eclipse.wst.jsdt.debug.crossfire,org.eclipse.jdt.core.tests.builder,org.eclipse.e4.languages.javascript.junit.test,org.eclipse.wst.jsdt.core.tests.compiler"/>
+<booleanAttribute key="includeOptional" value="true"/>
+<stringAttribute key="location" value="${workspace_loc}/../ant-junit-workspace"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/AntUITests.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/>
+<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.ant.tests.ui.testplugin.AntUITests"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.ant.tests.ui"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xms40m -Xmx384m -XX:MaxPermSize=128M"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
+<booleanAttribute key="run_in_ui_thread" value="true"/>
+<stringAttribute key="selected_target_plugins" value="org.eclipse.equinox.launcher@default:default,org.eclipse.equinox.p2.reconciler.dropins@default:default,org.eclipse.jdt.core.manipulation@default:default,org.eclipse.osgi.services@default:default,org.eclipse.equinox.simpleconfigurator@1:true,org.eclipse.equinox.util@default:default,org.eclipse.ecf@default:default,org.eclipse.core.runtime.compatibility.auth@default:default,org.eclipse.update.core@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.equinox.p2.director.app@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.team.svn.ui@default:default,org.eclipse.compare.core@default:default,com.ibm.icu@default:default,org.eclipse.jdt.apt.pluggable.core@default:default,org.mortbay.jetty.server@default:default,org.eclipse.jdt.ui@default:default,org.junit*3.8.2.v3_8_2_v20100427-1100@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,javax.servlet.jsp@default:default,org.eclipse.jdt.doc.isv@default:default,org.eclipse.equinox.p2.publisher@default:default,org.eclipse.jdt@default:default,org.eclipse.compare@default:default,org.polarion.eclipse.team.svn.connector@default:default,org.eclipse.equinox.app@default:default,org.eclipse.ui.navigator.resources@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.databinding.observable@default:default,org.slf4j.api@default:default,ch.qos.logback.classic@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.ui.workbench.compatibility@default:false,org.polarion.eclipse.team.svn.connector.svnkit@default:default,org.objectweb.asm@default:default,org.eclipse.equinox.p2.repository.tools@default:default,org.eclipse.core.boot@default:default,org.eclipse.platform@default:default,org.eclipse.jface@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.wst.jsdt.support.ie@default:default,javax.servlet@default:default,org.eclipse.ui.ide@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.swt@default:default,org.eclipse.core.resources@default:default,org.eclipse.equinox.p2.extensionlocation@default:default,org.eclipse.ui.forms@default:default,org.eclipse.team.svn.core@default:default,org.eclipse.equinox.simpleconfigurator.manipulator@default:default,org.eclipse.ui.intro.universal@default:default,org.eclipse.pde@default:default,org.eclipse.equinox.p2.updatesite@default:default,org.eclipse.jdt.doc.user@default:default,org.eclipse.core.commands@default:default,org.eclipse.ui.workbench.texteditor@default:default,org.eclipse.ui.views.log@default:default,org.eclipse.ui.navigator@default:default,org.eclipse.help.base@default:default,org.eclipse.help.webapp@default:default,com.ibm.piiclipse.core@default:default,org.eclipse.update.ui@default:default,org.eclipse.ui.cheatsheets@default:default,org.eclipse.team.svn.help@default:default,org.eclipse.equinox.p2.ui.sdk@default:default,org.eclipse.team.core@default:default,org.apache.lucene.analysis@default:default,org.apache.commons.el@default:default,org.eclipse.equinox.jsp.jasper.registry@default:default,org.eclipse.rcp@default:default,org.eclipse.pde.runtime@default:default,org.eclipse.equinox.p2.ui.sdk.scheduler@default:default,org.eclipse.equinox.p2.console@default:default,org.eclipse.osgi.util@default:default,org.eclipse.equinox.p2.updatechecker@default:default,org.eclipse.ui@default:default,org.eclipse.team.cvs.ui@default:default,com.jcraft.jsch@default:default,org.eclipse.equinox.event@default:default,org.eclipse.ui.net@default:default,org.eclipse.pde.ds.core@default:default,org.eclipse.sdk@default:default,org.eclipse.pde.ui.templates@default:default,org.eclipse.pde.launching@default:default,org.eclipse.core.net.linux.x86@default:false,org.eclipse.equinox.http.servlet@default:default,org.eclipse.ltk.ui.refactoring@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.wst.jsdt.support.firefox@default:default,org.eclipse.platform.doc.isv@default:default,org.apache.commons.logging@default:default,org.eclipse.jface.text@default:default,org.junit4@default:default,org.junit*4.8.1.v4_8_1_v20100427-1100@default:default,org.eclipse.core.net@default:default,org.eclipse.equinox.p2.metadata@default:default,com.ibm.piiclipse.help@default:default,org.eclipse.equinox.p2.director@default:default,org.eclipse.jdt.apt.ui@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.jdt.apt.core@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,org.eclipse.net4j.jms.api*3.0.0.v20100519-1649@default:default,org.eclipse.pde.junit.runtime@default:default,org.apache.ant@default:default,org.eclipse.core.expressions@default:default,org.apache.commons.httpclient@default:default,org.polarion.eclipse.team.svn.connector.svnkit15@default:default,org.hamcrest.core@default:default,org.eclipse.pde.ua.core@default:default,org.eclipse.team.svn@default:default,com.ibm.piiclipse.ui@default:default,org.eclipse.cvs@default:default,org.eclipse.equinox.frameworkadmin@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.ui.ide.application@default:default,org.eclipse.jdt.compiler.tool@default:false,org.mortbay.jetty.util@default:default,org.eclipse.help.appserver@default:default,org.eclipse.jdt.junit.runtime@default:default,org.eclipse.equinox.p2.ui@default:default,org.eclipse.jdt.junit@default:default,org.eclipse.help.ui@default:default,org.eclipse.equinox.http.registry@default:default,org.apache.commons.codec@default:default,org.eclipse.ui.presentations.r21@default:default,org.eclipse.equinox.p2.metadata.generator@default:default,org.eclipse.ui.views@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.ui.intro@default:default,org.eclipse.jdt.compiler.apt@default:false,org.eclipse.equinox.launcher.gtk.linux.x86@default:false,org.eclipse.core.runtime@default:true,org.eclipse.equinox.jsp.jasper@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.p2.touchpoint.eclipse@default:default,org.eclipse.swt.gtk.linux.x86@default:false,org.sat4j.core@default:default,org.eclipse.ecf.ssl@default:false,org.apache.lucene@default:default,org.eclipse.ui.browser@default:default,org.eclipse.pde.build@default:default,org.eclipse.net4j.jms.api*3.0.0.v20100614-1655@default:default,org.eclipse.update.configurator@3:true,org.eclipse.jsch.core@default:default,org.eclipse.pde.ua.ui@default:default,org.eclipse.ecf.provider.filetransfer.httpclient.ssl@default:false,org.eclipse.core.jobs@default:default,org.eclipse.team.svn.resource.ignore.rules.jdt@default:default,org.eclipse.core.filesystem.linux.x86@default:false,org.eclipse.equinox.concurrent@default:default,org.eclipse.equinox.common@2:true,org.eclipse.core.filebuffers@default:default,org.eclipse.pde.ds.ui@default:default,org.eclipse.ui.editors@default:default,org.eclipse.core.databinding.beans@default:default,ch.qos.logback.slf4j@default:false,org.eclipse.jsch.ui@default:default,org.eclipse.equinox.security.ui@default:default,org.apache.jasper@default:default,org.eclipse.team.cvs.core@default:default,org.eclipse.equinox.security@default:default,org.eclipse.update.scheduler@default:default,org.eclipse.team.ui@default:default,ch.qos.logback.core@default:default,org.eclipse.equinox.frameworkadmin.equinox@default:default,org.eclipse.equinox.p2.directorywatcher@default:default,org.eclipse.ui.views.properties.tabbed@default:default,org.eclipse.core.runtime.compatibility@default:default,org.eclipse.equinox.p2.operations@default:default,org.eclipse.jdt.core@default:default,org.eclipse.releng.tools@default:default,org.eclipse.core.filesystem@default:default,org.eclipse.team.cvs.ssh2@default:default,org.eclipse.update.core.linux@default:false,org.eclipse.equinox.p2.touchpoint.natives@default:default,org.eclipse.ecf.provider.filetransfer.httpclient@default:default,org.eclipse.equinox.http.jetty@default:default,org.eclipse.text@default:default,javax.mail.glassfish@default:default,org.eclipse.equinox.p2.garbagecollector@default:default,org.eclipse.help@default:default,org.eclipse.equinox.p2.ql@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.ltk.core.refactoring@default:default,org.eclipse.core.databinding@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.jarprocessor@default:default,org.polarion.eclipse.team.svn.connector.svnkit16@default:default,org.sat4j.pb@default:default,org.eclipse.jdt.junit.core@default:default,org.eclipse.search@default:default,org.eclipse.jdt.junit4.runtime@default:default,org.eclipse.osgi@-1:true,org.eclipse.ecf.provider.filetransfer@default:default"/>
+<stringAttribute key="selected_workspace_plugins" value="org.eclipse.wst.jsdt.debug.ui@default:default,org.eclipse.core.variables@default:default,org.eclipse.debug.core@default:default,org.eclipse.wst.jsdt.core@default:default,org.eclipse.pde.api.tools.ui@default:default,org.eclipse.platform.doc.user@default:default,org.eclipse.debug.ui@default:default,org.eclipse.ant.ui@default:default,org.eclipse.wst.jsdt.doc@default:default,org.mozilla.javascript@default:default,org.eclipse.jdt.debug@default:default,org.eclipse.ant.tests.core@default:default,org.eclipse.ant.tests.ui@default:default,org.eclipse.wst.jsdt.debug.core@default:default,org.eclipse.test.performance@default:default,org.eclipse.ui.externaltools@default:default,org.eclipse.jdt.debug.ui@default:default,org.eclipse.wst.jsdt.manipulation@default:default,org.eclipse.wst.jsdt.debug.transport@default:default,org.eclipse.ui.console@default:default,org.eclipse.wst.jsdt.debug.rhino.debugger@default:default,org.eclipse.pde.doc.user@default:default,org.eclipse.pde.api.tools@default:default,org.eclipse.core.externaltools@default:default,org.eclipse.jdt.launching@default:default,org.eclipse.ant.core@default:default,org.eclipse.ant.launching@default:default,org.eclipse.wst.jsdt.ui@default:default,org.eclipse.wst.jsdt.debug.rhino@default:default"/>
+<booleanAttribute key="show_selected_only" value="false"/>
+<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useCustomFeatures" value="false"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="false"/>
+<booleanAttribute key="useProduct" value="true"/>
+</launchConfiguration>
diff --git a/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/AbstractAntUITest.java b/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/AbstractAntUITest.java
index 55b7d75..73a5827 100644
--- a/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/AbstractAntUITest.java
+++ b/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/AbstractAntUITest.java
@@ -39,6 +39,10 @@
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.Assert;
 import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.debug.core.DebugEvent;
 import org.eclipse.debug.core.DebugPlugin;
 import org.eclipse.debug.core.ILaunch;
@@ -56,9 +60,15 @@
 import org.eclipse.jface.text.ITypedRegion;
 import org.eclipse.jface.text.Position;
 import org.eclipse.swt.graphics.Color;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.console.IHyperlink;
 import org.eclipse.ui.internal.console.ConsoleHyperlinkPosition;
 import org.eclipse.ui.internal.console.IOConsolePartition;
+import org.eclipse.ui.intro.IIntroManager;
+import org.eclipse.ui.intro.IIntroPart;
+import org.eclipse.ui.progress.UIJob;
 import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
 import org.xml.sax.helpers.DefaultHandler;
@@ -69,7 +79,7 @@
 public abstract class AbstractAntUITest extends TestCase {
     
     public static String ANT_EDITOR_ID= "org.eclipse.ant.ui.internal.editor.AntEditor";
-    
+    private boolean welcomeClosed = false;
     private IDocument currentDocument;
 
     /**
@@ -106,9 +116,40 @@
     protected void setUp() throws Exception {
     	super.setUp();
     	assertProject();
+    	assertWelcomeScreenClosed();
     }
     
     /**
+	 * Ensure the welcome screen is closed because in 4.x the debug perspective opens a giant fast-view causing issues
+	 *  
+	 * @throws Exception
+	 * @since 3.8
+	 */
+	void assertWelcomeScreenClosed() throws Exception {
+		if(!welcomeClosed && PlatformUI.isWorkbenchRunning()) {
+			final IWorkbench wb = PlatformUI.getWorkbench();
+			if(wb != null) {
+				UIJob job = new UIJob("close welcome screen for Ant test suite") {
+					public IStatus runInUIThread(IProgressMonitor monitor) {
+						IWorkbenchWindow window = wb.getActiveWorkbenchWindow();
+						if(window != null) {
+							IIntroManager im = wb.getIntroManager();
+							IIntroPart intro = im.getIntro();
+							if(intro != null) {
+								welcomeClosed = im.closeIntro(intro);
+							}
+						}
+						return Status.OK_STATUS;
+					}
+				};
+				job.setPriority(Job.INTERACTIVE);
+				job.setSystem(true);
+				job.schedule();
+			}
+		}
+	}
+    
+    /**
      * Asserts that the testing project has been setup in the test workspace
      * @throws Exception
      * 
