diff --git a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/wsdl11/WSDL11BasicValidator.java b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/wsdl11/WSDL11BasicValidator.java
index fb06c57..7c36a27 100644
--- a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/wsdl11/WSDL11BasicValidator.java
+++ b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/wsdl11/WSDL11BasicValidator.java
@@ -108,7 +108,14 @@
     validateBindings(wsdlDefinition, valInfo);
     validatePortTypes(wsdlDefinition, valInfo);
     validateMessages(wsdlDefinition, valInfo);
+
+    // The parents list is expected to be empty here, so simply add the definition 
+    // being validated to the parents list, validate its extensibility elements, 
+    // then remove it.
+    
+    parents.add(wsdlDefinition);
     validateExtensibilityElementList(parents, wsdlDefinition.getExtensibilityElements(), valInfo);
+    parents.remove(0);
   }
 
   /**
diff --git a/tests/org.eclipse.wst.wsdl.validation.tests/src/org/eclipse/wst/wsdl/validation/tests/internal/SimpleExtensionsValidator.java b/tests/org.eclipse.wst.wsdl.validation.tests/src/org/eclipse/wst/wsdl/validation/tests/internal/SimpleExtensionsValidator.java
index 7ebbeb0..15491bb 100644
--- a/tests/org.eclipse.wst.wsdl.validation.tests/src/org/eclipse/wst/wsdl/validation/tests/internal/SimpleExtensionsValidator.java
+++ b/tests/org.eclipse.wst.wsdl.validation.tests/src/org/eclipse/wst/wsdl/validation/tests/internal/SimpleExtensionsValidator.java
@@ -14,6 +14,7 @@
 
 import java.util.List;
 
+import javax.wsdl.extensions.ElementExtensible;
 import javax.wsdl.extensions.ExtensibilityElement;
 import javax.xml.namespace.QName;
 
@@ -36,6 +37,11 @@
     QName elementType = extensibilityElement.getElementType();
     String namespaceURI = elementType.getNamespaceURI();
     
+    if (parents.isEmpty() || !(parents.get(0) instanceof ElementExtensible))
+    {
+      valInfo.addWarning("The current parent is expected to have extensibility elements.", element); //$NON-NLS-1$
+    }
+    
     if (NS_URI.equals(namespaceURI))
     {
       valInfo.addWarning("The test extensions validator got called.", element); //$NON-NLS-1$
