diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/SynchronizeManager.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/SynchronizeManager.java
index bd73fdb..f658937 100644
--- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/SynchronizeManager.java
+++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/SynchronizeManager.java
@@ -140,6 +140,10 @@
 			return participant != null;
 		}
 		
+		public IMemento getSavedState() {
+			return savedState;
+		}
+		
 		public boolean equals(Object other) {
 			try {
 				if(other == this) return true;
@@ -412,8 +416,12 @@
 			List participants = (List) synchronizeParticipants.get(id);
 			for (Iterator it2 = participants.iterator(); it2.hasNext(); ) {
 				ParticipantInstance instance = (ParticipantInstance) it2.next();
-				// An un-instantiated participant can't have any state to save, also
-				// we don't want to trigger class creation when saving state.
+				
+				// create the state placeholder for a participant 
+				IMemento participantNode = xmlMemento.createChild(CTX_PARTICIPANT);
+				participantNode.putString(CTX_ID, instance.getId());				
+				IMemento participantData = participantNode.createChild(CTX_PARTICIPANT_DATA);
+				
 				if(instance.isParticipantInitialized()) {
 					ISynchronizeParticipant participant;
 					try {
@@ -422,9 +430,12 @@
 						// Continue with the next participant instance.
 						continue;
 					}
-					IMemento participantNode = xmlMemento.createChild(CTX_PARTICIPANT);
-					participantNode.putString(CTX_ID, participant.getId());
-					participant.saveState(participantNode.createChild(CTX_PARTICIPANT_DATA));
+					participant.saveState(participantData);
+				} else {
+					IMemento savedState = instance.getSavedState();
+					if(savedState != null) {
+						participantData.putMemento(savedState);
+					}
 				}
 			}
 		}
