diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/XMLUIMessages.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/XMLUIMessages.java
index a9e6b5f..2f93c72 100644
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/XMLUIMessages.java
+++ b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/XMLUIMessages.java
@@ -1,5 +1,5 @@
 /**********************************************************************
- * Copyright (c) 2005, 2012 IBM Corporation and others. All rights reserved.   This
+ * Copyright (c) 2005, 2013 IBM Corporation and others. All rights reserved.   This
  * program and the accompanying materials are made available under the terms of
  * the Eclipse Public License v1.0 which accompanies this distribution, and is
  * available at http://www.eclipse.org/legal/epl-v10.html
@@ -252,6 +252,7 @@
 	public static String Suggestion_Strategy_Strict;
 	public static String Element____1;
 	public static String Content_Model____2;
+	public static String ContentModel_ElementNotDescribed;
 	public static String Attribute____3;
 	public static String Data_Type____4;
 	public static String Enumerated_Values____5;
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/XMLUIPluginResources.properties b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/XMLUIPluginResources.properties
index dc8c8ed..b14da0c 100644
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/XMLUIPluginResources.properties
+++ b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/XMLUIPluginResources.properties
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2001, 2012 IBM Corporation and others.
+# Copyright (c) 2001, 2013 IBM Corporation and others.
 # All rights reserved. This program and the accompanying materials
 # are made available under the terms of the Eclipse Public License v1.0
 # which accompanies this distribution, and is available at
@@ -284,6 +284,7 @@
 ## tag info
 Element____1=Element :
 Content_Model____2=Content Model :
+ContentModel_ElementNotDescribed=The content model does not describe the selected element.
 Attribute____3=Attribute :
 Data_Type____4=Data Type :
 Enumerated_Values____5=Enumerated Values :
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/views/contentmodel/CMListWorkbenchAdapter.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/views/contentmodel/CMListWorkbenchAdapter.java
index 08d4fd2..ac76d87 100644
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/views/contentmodel/CMListWorkbenchAdapter.java
+++ b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/views/contentmodel/CMListWorkbenchAdapter.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2010 IBM Corporation and others.
+ * Copyright (c) 2010, 2013 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -24,6 +24,7 @@
 import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
 import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
 import org.eclipse.wst.xml.core.internal.contentmodel.util.CMVisitor;
+import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
 import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
 import org.eclipse.wst.xml.ui.internal.editor.XMLEditorPluginImages;
 
@@ -35,18 +36,26 @@
 	private GroupStack fGroupStack;
 	private CMDescriber fRoot;
 
-	public CMListWorkbenchAdapter(CMElementDeclaration decl) {
-		text = getFormattedLabel(decl.getNodeName(), decl.getMinOccur(), decl.getMaxOccur(), decl.getDataType());
-		fDeclaration = decl;
-		image = AbstractUIPlugin.imageDescriptorFromPlugin(XMLUIPlugin.ID, XMLEditorPluginImages.IMG_OBJ_ELEMENT);
+	private static final Object[] EMPTY = new Object[0];
 
-		fGroupStack = new GroupStack();
-		fRoot = new CMDescriber(decl);
+	public CMListWorkbenchAdapter(CMElementDeclaration decl) {
+		if (decl != null) {
+			text = getFormattedLabel(decl.getNodeName(), decl.getMinOccur(), decl.getMaxOccur(), decl.getDataType());
+			fDeclaration = decl;
+			image = AbstractUIPlugin.imageDescriptorFromPlugin(XMLUIPlugin.ID, XMLEditorPluginImages.IMG_OBJ_ELEMENT);
+
+			fGroupStack = new GroupStack();
+			fRoot = new CMDescriber(decl);
+		}
+		else {
+			text = XMLUIMessages.ContentModel_ElementNotDescribed;
+			image = AbstractUIPlugin.imageDescriptorFromPlugin(XMLUIPlugin.ID, XMLEditorPluginImages.IMG_OBJ_WARNING_OBJ);
+		}
 	}
 
 	public Object[] getChildren(Object o) {
 		/* TODO Use the CMElementDeclaration and ModelQuery to get the available children of the root element */
-		return fRoot.getChildren(o);
+		return fRoot != null ? fRoot.getChildren(o) : EMPTY;
 	}
 
 	public ImageDescriptor getImageDescriptor(Object object) {
