diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDMenuListener.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDMenuListener.java
index 210dfac..61093be 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDMenuListener.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDMenuListener.java
@@ -107,11 +107,21 @@
     return ((IStructuredSelection) selection).getFirstElement();
   }
   
+  protected boolean isSchemaReadOnly()
+  {
+	  XSDSchema editorSchema = ((XSDEditor)PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor()).getXSDSchema();
+	  if (editorSchema == xsdSchema) {
+		  return false;
+	  }
+
+	  return true; 
+  }
+  
   protected XSDSchema getCurrentSchemaInEditor()
   {
     return ((XSDEditor)PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor()).getXSDSchema();
   }
-  
+    
   protected void updateXSDSchema()
   {
     isReadOnly = false;
@@ -120,11 +130,7 @@
     if (object instanceof XSDConcreteComponent)
     {
       xsdSchema = ((XSDConcreteComponent) object).getSchema();
-      
-      if (getCurrentSchemaInEditor() != xsdSchema)
-      {
-        isReadOnly = true;
-      }
+      isReadOnly = isSchemaReadOnly();
     }
     else if (object instanceof Category)
     {
