diff --git a/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/jst/j2ee/dependency/tests/ProjectEARRefactoringTests.java b/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/jst/j2ee/dependency/tests/ProjectEARRefactoringTests.java
index 1949b8d..ec963c6 100644
--- a/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/jst/j2ee/dependency/tests/ProjectEARRefactoringTests.java
+++ b/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/jst/j2ee/dependency/tests/ProjectEARRefactoringTests.java
@@ -11,6 +11,7 @@
 package org.eclipse.jst.j2ee.dependency.tests;
 
 import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.jst.j2ee.dependency.tests.util.DependencyCreationUtil;
 import org.eclipse.jst.j2ee.dependency.tests.util.DependencyUtil;
 import org.eclipse.jst.j2ee.dependency.tests.util.DependencyVerificationUtil;
@@ -237,6 +238,8 @@
 		DependencyCreationUtil.createModuleDependency(webProject1, ejbProject);
 		DependencyCreationUtil.createWebLibDependency(webProject2, ejbProject);
 		
+		DependencyUtil.waitForJobs(ResourcesPlugin.FAMILY_AUTO_BUILD);
+				
 		final String moduleURI1 = DependencyVerificationUtil.verifyEARDependency(earProject1, ejbProject, true);
 		final String moduleURI2 = DependencyVerificationUtil.verifyEARDependency(earProject2, ejbProject, true);	
 		DependencyVerificationUtil.verifyEARDependency(earProject1, webProject1, true);
@@ -245,7 +248,7 @@
 		DependencyVerificationUtil.verifyWebLibDependency(webProject2, ejbProject);
 		
 		IProject newEJB = ProjectUtil.renameProject(ejbProject, "newEJB");
-		
+			
 		DependencyVerificationUtil.verifyEARDependencyChanged(earProject1, ejbProject, moduleURI1, newEJB);	
 		DependencyVerificationUtil.verifyEARDependencyChanged(earProject2, ejbProject, moduleURI2, newEJB);
       	DependencyVerificationUtil.verifyModuleDependencyChanged(webProject1, ejbProject, newEJB);
diff --git a/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/jst/j2ee/dependency/tests/util/DependencyUtil.java b/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/jst/j2ee/dependency/tests/util/DependencyUtil.java
index 4ca171b..f48fef3 100644
--- a/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/jst/j2ee/dependency/tests/util/DependencyUtil.java
+++ b/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/jst/j2ee/dependency/tests/util/DependencyUtil.java
@@ -88,7 +88,16 @@
 	 * Waits for jobs in the specified family
 	 * @param family
 	 */
+	
 	public static void waitForJobs(final String family) {
+		waitForJobs((Object)family);
+	}
+	
+	/**
+	 * Waits for jobs in the specified family
+	 * @param family
+	 */
+	public static void waitForJobs(final Object family) {
 		final IJobManager jobMgr = Platform.getJobManager();
         for (int i = 0; i < 1000; i++) {
 			final Job[] jobs = jobMgr.find(family);
diff --git a/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/jst/j2ee/dependency/tests/util/ProjectUtil.java b/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/jst/j2ee/dependency/tests/util/ProjectUtil.java
index 6e42122..a5b73b2 100644
--- a/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/jst/j2ee/dependency/tests/util/ProjectUtil.java
+++ b/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/jst/j2ee/dependency/tests/util/ProjectUtil.java
@@ -104,6 +104,7 @@
 		//waitForValidationJobs();
 		ResourcesPlugin.getWorkspace().run(workspaceRunnable, null);
 		DependencyUtil.waitForProjectRefactoringJobs();
+		DependencyUtil.waitForComponentRefactoringJobs();
         ProjectUtil.waitForClasspathUpdate();
 		return newProject;
 	}
