diff --git a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/view/AnnotationViewPartBase.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/view/AnnotationViewPartBase.java
index af8ef046571f49942efb69c8d164230e9a404047..291979c347fab4d0d7d6d7df5d70ca48c92d8eef 100644
--- a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/view/AnnotationViewPartBase.java
+++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/view/AnnotationViewPartBase.java
@@ -24,7 +24,9 @@ import static org.fortiss.tooling.kernel.utils.KernelModelElementUtils.getParent
 import java.util.Collection;
 import java.util.Comparator;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.Map;
+import java.util.Set;
 import java.util.TreeSet;
 
 import org.eclipse.emf.common.notify.Adapter;
@@ -85,6 +87,18 @@ public abstract class AnnotationViewPartBase extends ViewPart implements ISelect
 	/** Flag to prevent nested calls of {@link #selectionChanged(IWorkbenchPart, ISelection)}. */
 	private boolean processingSectionChanged = false;
 
+	/** Flag if update of {@link AnnotationViewPartBase} views is enabled. */
+	private static boolean isUpdateEnabled = true;
+
+	/** Active instances of {@link AnnotationViewPartBase} views. */
+	private static Set<AnnotationViewPartBase> activeInstances =
+			new HashSet<AnnotationViewPartBase>();
+
+	/** Constructs a new {@link AnnotationViewPartBase}. */
+	public AnnotationViewPartBase() {
+		activeInstances.add(this);
+	}
+
 	/**
 	 * {@link Adapter} to watch for the addition, removal or value change of model elements
 	 * to/from/in elements visible in this {@link AnnotationViewPartBase} (to trigger according
@@ -94,6 +108,10 @@ public abstract class AnnotationViewPartBase extends ViewPart implements ISelect
 		/** {@inheritDoc} */
 		@Override
 		public void notifyChanged(Notification notification) {
+			if(!isUpdateEnabled) {
+				return;
+			}
+
 			// Required to actually watch child elements (behavior of EContentAdapter)
 			super.notifyChanged(notification);
 
@@ -198,7 +216,8 @@ public abstract class AnnotationViewPartBase extends ViewPart implements ISelect
 	 */
 	private void addAnnotationEntry(Collection<AnnotationEntry> annotationEntries,
 			IModelElement modelElement) {
-		AnnotationEntry entry = IAnnotationValueService.getInstance().getAnnotationEntry(modelElement);
+		AnnotationEntry entry =
+				IAnnotationValueService.getInstance().getAnnotationEntry(modelElement);
 
 		if(!entry.isEmpty()) {
 			annotationEntries.add(entry);
@@ -266,6 +285,9 @@ public abstract class AnnotationViewPartBase extends ViewPart implements ISelect
 	/** Update concrete view */
 	protected abstract void update(Collection<AnnotationEntry> annotationEntries);
 
+	/** Triggers an update of the view to refresh its last state. */
+	public abstract void update();
+
 	/** {@inheritDoc} */
 	@Override
 	public void createPartControl(Composite parent) {
@@ -280,7 +302,7 @@ public abstract class AnnotationViewPartBase extends ViewPart implements ISelect
 
 	/** {@inheritDoc} */
 	@Override
-	public void dispose() {
+	public synchronized void dispose() {
 		// Unregister listeners
 		getSite().getWorkbenchWindow().getSelectionService().removeSelectionListener(this);
 		if(watchedElement != null) {
@@ -289,5 +311,27 @@ public abstract class AnnotationViewPartBase extends ViewPart implements ISelect
 		}
 
 		super.dispose();
+
+		activeInstances.remove(this);
+	}
+
+	/** Sets {@link #isUpdateEnabled}. If the update is re-enabled, the view is refreshed. */
+	public static synchronized void setUpdateEnabled(boolean isUpdateEnabled) {
+		AnnotationViewPartBase.isUpdateEnabled = isUpdateEnabled;
+		if(isUpdateEnabled) {
+			Display.getDefault().asyncExec(new Runnable() {
+				@Override
+				public void run() {
+					for(AnnotationViewPartBase avp : activeInstances) {
+						avp.update();
+					}
+				}
+			});
+		}
+	}
+
+	/** Returns {@link #isUpdateEnabled}. */
+	public synchronized static boolean isUpdateEnabled() {
+		return isUpdateEnabled;
 	}
 }
diff --git a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/view/generic/GenericAnnotationView.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/view/generic/GenericAnnotationView.java
index 09b5f978f1a0266ba98ac05445264123ec8494c6..951876b07b2530fd581a578b9199281a5e702305 100644
--- a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/view/generic/GenericAnnotationView.java
+++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/view/generic/GenericAnnotationView.java
@@ -156,7 +156,8 @@ public class GenericAnnotationView extends AnnotationViewPartBase {
 		return annotationFilter;
 	}
 
-	/** Updates the table after a filter change */
+	/** {@inheritDoc} */
+	@Override
 	public void update() {
 		// Full update, i.e. including reconstructions of columns is always required due to the
 		// following scenario:
@@ -164,6 +165,7 @@ public class GenericAnnotationView extends AnnotationViewPartBase {
 		// - Filter scope is changed to component names -> annotation filter needs to be undone
 		// - Filter is based on annotation entry type
 		// - Filter is set to current level / current sub model
+		// - Update of view as been disabled using setUpdateEnable(boolean) is re-enabled now
 		if(lastAnnotationEntries != null) {
 			update(lastAnnotationEntries);
 		}
@@ -172,6 +174,10 @@ public class GenericAnnotationView extends AnnotationViewPartBase {
 	/** {@inheritDoc} */
 	@Override
 	protected void update(Collection<AnnotationEntry> annotationEntries) {
+		if(!isUpdateEnabled()) {
+			return;
+		}
+
 		// Update row filter with currently selected element
 		annotationFilter.setCurrentySelectedModelElement(getCurrentlySelectedObject());
 		boolean contentRequiresUpdate =