diff --git a/de.prob.ui/plugin.xml b/de.prob.ui/plugin.xml
index 43acbbe73bcfb5597ca108f04be5641c0a2f65df..14cb1e6079a38f9c81859fa317cb3709ace8d6b6 100644
--- a/de.prob.ui/plugin.xml
+++ b/de.prob.ui/plugin.xml
@@ -757,27 +757,43 @@
       </handler>
       <handler
             commandId="de.prob.ui.refinement_check">
-         <enabledWhen>
-            <with
-                  variable="de.prob.core.model_loaded">
-               <equals
-                     value="enabled">
-               </equals>
-            </with>
-         </enabledWhen>
          <class
                class="de.prob.ui.refinementcheck.RefinementCheckHandler">
          </class>
+         <enabledWhen>
+            <and>
+               <with
+                     variable="de.prob.core.model_loaded">
+                  <equals
+                        value="enabled">
+                  </equals>
+               </with>
+               <with
+                     variable="de.prob.core.context_loaded">
+                  <equals
+                        value="disabled">
+                  </equals>
+               </with>
+            </and>
+         </enabledWhen>
       </handler>
       <handler
             commandId="de.prob.ui.assertion_check">
          <enabledWhen>
-            <with
-                  variable="de.prob.core.model_loaded">
-               <equals
-                     value="enabled">
-               </equals>
-            </with>
+            <and>
+               <with
+                     variable="de.prob.core.model_loaded">
+                  <equals
+                        value="enabled">
+                  </equals>
+               </with>
+               <with
+                     variable="de.prob.core.context_loaded">
+                  <equals
+                        value="disabled">
+                  </equals>
+               </with>
+            </and>
          </enabledWhen>
          <class
                class="de.prob.ui.assertion.AssertionCheckHandler">
@@ -1222,6 +1238,13 @@
                name="de.prob.ui.ltl.counterexample_loaded"
                priorityLevel="workbench">
          </variable>
+      </sourceProvider>
+      <sourceProvider
+            provider="de.prob.ui.services.ContextLoadedProvider">
+         <variable
+               name="de.prob.core.context_loaded"
+               priorityLevel="workbench">
+         </variable>
       </sourceProvider>
         </extension>
 </plugin>
diff --git a/de.prob.ui/src/de/prob/ui/eventb/StartAnimationHandler.java b/de.prob.ui/src/de/prob/ui/eventb/StartAnimationHandler.java
index bad71c487cf3bcc693af280eae6889e452261296..108ceed9f0c649efec04a1b682c08d766c138776 100644
--- a/de.prob.ui/src/de/prob/ui/eventb/StartAnimationHandler.java
+++ b/de.prob.ui/src/de/prob/ui/eventb/StartAnimationHandler.java
@@ -20,7 +20,9 @@ import org.eclipse.core.runtime.IPath;
 import org.eclipse.jface.action.IAction;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.handlers.HandlerUtil;
+import org.eclipse.ui.services.ISourceProviderService;
 import org.eventb.core.IContextRoot;
 import org.eventb.core.IEventBRoot;
 import org.eventb.core.IMachineRoot;
@@ -33,6 +35,8 @@ import de.prob.core.command.LoadEventBModelCommand;
 import de.prob.exceptions.ProBException;
 import de.prob.logging.Logger;
 import de.prob.ui.PerspectiveFactory;
+import de.prob.ui.services.ContextLoadedProvider;
+import de.prob.ui.services.ModelLoadedProvider;
 
 public class StartAnimationHandler extends AbstractHandler implements IHandler {
 
@@ -144,6 +148,14 @@ public class StartAnimationHandler extends AbstractHandler implements IHandler {
 		}
 		return root;
 	}
+	
+	private void updateContextLoadedProvider(boolean isContext) {
+		ISourceProviderService service = (ISourceProviderService) 
+				PlatformUI.getWorkbench().getService(ISourceProviderService.class);
+		ContextLoadedProvider sourceProvider = (ContextLoadedProvider) service
+				.getSourceProvider(ContextLoadedProvider.SERVICE);
+		sourceProvider.setEnabled(isContext);
+	}
 
 	private IFile extractResource(final IEventBRoot rootElement) {
 		IFile resource = null;
@@ -152,9 +164,11 @@ public class StartAnimationHandler extends AbstractHandler implements IHandler {
 		} else if (rootElement instanceof IMachineRoot) {
 			resource = ((IMachineRoot) rootElement).getSCMachineRoot()
 					.getResource();
+			updateContextLoadedProvider(false);
 		} else if (rootElement instanceof IContextRoot) {
 			resource = ((IContextRoot) rootElement).getSCContextRoot()
 					.getResource();
+			updateContextLoadedProvider(true);
 		}
 		return resource;
 	}
diff --git a/de.prob.ui/src/de/prob/ui/services/ContextLoadedProvider.java b/de.prob.ui/src/de/prob/ui/services/ContextLoadedProvider.java
new file mode 100644
index 0000000000000000000000000000000000000000..5229f7d5f379907587f28ec415a4454df550b609
--- /dev/null
+++ b/de.prob.ui/src/de/prob/ui/services/ContextLoadedProvider.java
@@ -0,0 +1,11 @@
+package de.prob.ui.services;
+
+public class ContextLoadedProvider extends AbstractBoolProvider {
+
+	public static final String SERVICE = "de.prob.core.context_loaded";
+
+	public ContextLoadedProvider() {
+		super(SERVICE);
+	}
+
+}