diff --git a/plugins/org.eclipse.xtext/src/org/eclipse/xtext/resource/XtextResource.java b/plugins/org.eclipse.xtext/src/org/eclipse/xtext/resource/XtextResource.java
index <HASH>..<HASH> 100644
--- a/plugins/org.eclipse.xtext/src/org/eclipse/xtext/resource/XtextResource.java
+++ b/plugins/org.eclipse.xtext/src/org/eclipse/xtext/resource/XtextResource.java
@@ -226,6 +226,21 @@ public class XtextResource extends ResourceImpl {
 		super.doUnload();
 		parseResult = null;
 	}
+	
+	/**
+	 * @since 2.9
+	 */
+	public void relink() {
+		if (!isLoaded()) {
+			throw new IllegalStateException("You can't update an unloaded resource.");
+		}
+		try {
+			isUpdating = true;
+			updateInternalState(parseResult, parseResult);
+		} finally {
+			isUpdating = false;
+		}
+	}
 
 	public void update(int offset, int replacedTextLength, String newText) {
 		if (!isLoaded()) {
[idea][performance] Only relink a model on the modification counter
change, reparsing should be triggered by changing a corresponding xtext
file

Change-Id: I<I>eefbbe<I>c<I>d4e2d<I>e3