fixed regression : reserialization need syncexec
diff --git a/plugins/org.eclipse.mylyn.docs.intent.client.ui/src/org/eclipse/mylyn/docs/intent/client/ui/editor/IntentDocumentProvider.java b/plugins/org.eclipse.mylyn.docs.intent.client.ui/src/org/eclipse/mylyn/docs/intent/client/ui/editor/IntentDocumentProvider.java
index ee7b36b..80bdee4 100644
--- a/plugins/org.eclipse.mylyn.docs.intent.client.ui/src/org/eclipse/mylyn/docs/intent/client/ui/editor/IntentDocumentProvider.java
+++ b/plugins/org.eclipse.mylyn.docs.intent.client.ui/src/org/eclipse/mylyn/docs/intent/client/ui/editor/IntentDocumentProvider.java
@@ -355,6 +355,7 @@
 					public void execute() {

 						try {

 							merge((IntentEditorDocument)document, localAST);

+							((IntentEditorDocument)document).reloadFromAST(true);

 							repositoryAdapter.save();

 						} catch (ReadOnlyException e) {

 							IntentUiLogger.logError(e);

@@ -365,7 +366,6 @@
 

 				});

 

-				((IntentEditorDocument)document).reloadFromAST();

 			} catch (ParseException e) {

 				this.createSyntaxErrorAnnotation(e.getMessage(), e.getErrorOffset(), e.getErrorLength());

 				hasSyntaxErrors = true;

diff --git a/plugins/org.eclipse.mylyn.docs.intent.client.ui/src/org/eclipse/mylyn/docs/intent/client/ui/editor/IntentEditorDocument.java b/plugins/org.eclipse.mylyn.docs.intent.client.ui/src/org/eclipse/mylyn/docs/intent/client/ui/editor/IntentEditorDocument.java
index a9d29c3..d15c7c1 100644
--- a/plugins/org.eclipse.mylyn.docs.intent.client.ui/src/org/eclipse/mylyn/docs/intent/client/ui/editor/IntentEditorDocument.java
+++ b/plugins/org.eclipse.mylyn.docs.intent.client.ui/src/org/eclipse/mylyn/docs/intent/client/ui/editor/IntentEditorDocument.java
@@ -142,8 +142,17 @@
 	 * Sets the new value of the ast and refresh the document.
 	 */
 	public void reloadFromAST() {
-		Display.getDefault().asyncExec(new Runnable() {
+		reloadFromAST(false);
+	}
 
+	/**
+	 * Sets the new value of the ast and refresh the document.
+	 * 
+	 * @param syncExec
+	 *            if true, use sync exec. async if false
+	 */
+	protected void reloadFromAST(boolean syncExec) {
+		Runnable runnable = new Runnable() {
 			public void run() {
 				if (associatedEditor.getSelectionProvider() != null) {
 					ISelection selection = associatedEditor.getSelectionProvider().getSelection();
@@ -158,8 +167,12 @@
 					associatedEditor.getSelectionProvider().setSelection(selection);
 				}
 			}
-		});
-
+		};
+		if (syncExec) {
+			Display.getDefault().syncExec(runnable);
+		} else {
+			Display.getDefault().asyncExec(runnable);
+		}
 	}
 
 	/**