On refresh, always wait until tree is updated
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/SubscriberMergeContext.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/SubscriberMergeContext.java
index 986bad8..8c75895 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/SubscriberMergeContext.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/SubscriberMergeContext.java
@@ -64,7 +64,8 @@
 		handler.start();
 		if (refresh)
 			subscriber.refresh(getScope().getTraversals(), monitor);
-		handler.waitUntilIdle(monitor);
+		else
+			handler.waitUntilIdle(monitor);
 	}
 	
 	/* (non-Javadoc)
@@ -73,6 +74,7 @@
 	public void refresh(ResourceTraversal[] traversals, int flags,
 			IProgressMonitor monitor) throws CoreException {
 		subscriber.refresh(traversals, monitor);
+		handler.waitUntilIdle(monitor);
 	}
 	
 	/* (non-Javadoc)