[141066]  make extensions property sheet work properly
diff --git a/bundles/org.eclipse.wst.wsdl.ui/.classpath b/bundles/org.eclipse.wst.wsdl.ui/.classpath
index 9b3ddea..b18995c 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/.classpath
+++ b/bundles/org.eclipse.wst.wsdl.ui/.classpath
@@ -5,5 +5,6 @@
 	<classpathentry kind="src" path="src-asd"/>
 	<classpathentry kind="src" path="src-asd-wsdl11"/>
 	<classpathentry kind="src" path="src-refactor"/>
+	<classpathentry kind="src" path="src-soap"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/extensions/INodeReconciler.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/extensions/INodeReconciler.java
index 63b2547..4692d3e 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/extensions/INodeReconciler.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/extensions/INodeReconciler.java
@@ -12,7 +12,9 @@
 
 import org.w3c.dom.Element;
 
-
+/**
+ * @depreacted
+ */
 public interface INodeReconciler
 {
   public void notifyChanged(Object modelObject, Element element, int eventType, Object feature, Object oldValue, Object newValue, int index);                                         
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/properties/sections/W11ExtensionsSection.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/properties/sections/W11ExtensionsSection.java
index bf47483..b80146d 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/properties/sections/W11ExtensionsSection.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/properties/sections/W11ExtensionsSection.java
@@ -28,6 +28,7 @@
 import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
 import org.eclipse.wst.wsdl.ui.internal.commands.AddExtensionElementCommand;
 import org.eclipse.wst.wsdl.ui.internal.filter.ExtensiblityElementFilter;
+import org.eclipse.wst.wsdl.ui.internal.text.WSDLModelAdapter;
 import org.eclipse.wst.xsd.ui.internal.common.commands.AddExtensionCommand;
 import org.eclipse.wst.xsd.ui.internal.common.properties.sections.AbstractExtensionsSection;
 import org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.AddExtensionsComponentDialog;
@@ -40,6 +41,8 @@
 
 public class W11ExtensionsSection extends AbstractExtensionsSection
 {
+  WSDLModelAdapter modelAdapter;
+  
   public W11ExtensionsSection()
   {
     super();
@@ -84,6 +87,12 @@
     if (input instanceof ExtensibleElement)
     {
       isReadOnly = false;
+      Element element = ((ExtensibleElement)input).getElement();
+      if (element != null)
+      {  
+        modelAdapter = WSDLModelAdapter.lookupOrCreateModelAdapter(element.getOwnerDocument());
+        modelAdapter.getModelReconcileAdapter().addListener(internalNodeAdapter);
+      }        
       //addButton.setEnabled(true);
       //removeButton.setEnabled(true);      
     }  
@@ -94,6 +103,15 @@
       //removeButton.setEnabled(false); 
     }  
   }
+  
+  public void dispose()
+  {
+    super.dispose();
+    if (modelAdapter != null)
+    {
+      modelAdapter.getModelReconcileAdapter().removeListener(internalNodeAdapter);
+    }  
+  }
 
   protected AddExtensionsComponentDialog createAddExtensionsComponentDialog()
   {
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/text/WSDLModelAdapter.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/text/WSDLModelAdapter.java
index 754fe02..5e3d7b6 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/text/WSDLModelAdapter.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/text/WSDLModelAdapter.java
@@ -24,6 +24,7 @@
 import org.eclipse.wst.wsdl.ui.internal.util.WSDLEditorUtil;
 import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
 import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
+import org.eclipse.wst.xsd.ui.internal.util.ModelReconcileAdapter;
 import org.eclipse.wst.xsd.ui.internal.util.XSDSchemaLocationResolverAdapterFactory;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
@@ -32,6 +33,7 @@
 {
   protected ResourceSet resourceSet;
   protected Definition definition;
+  private ModelReconcileAdapter modelReconcileAdapter;
 
   public Definition getDefinition()
   {
@@ -104,7 +106,7 @@
       
       // attach an adapter to keep the WSDL model and DOM in sync
       //
-      new WSDLModelReconcileAdapter(document, definition);
+      modelReconcileAdapter = new WSDLModelReconcileAdapter(document, definition);
       
       
       // TODO... CS : revisit this line
@@ -119,4 +121,25 @@
     }
     return definition;
   }
+  
+  public ModelReconcileAdapter getModelReconcileAdapter()
+  {
+    return modelReconcileAdapter;
+  }  
+  
+  public static WSDLModelAdapter lookupOrCreateModelAdapter(Document document)
+  {
+    WSDLModelAdapter adapter = null;
+    if (document instanceof INodeNotifier)
+    {
+      INodeNotifier notifier = (INodeNotifier)document;
+      adapter = (WSDLModelAdapter)notifier.getAdapterFor(WSDLModelAdapter.class);
+      if (adapter == null)
+      {
+        adapter = new WSDLModelAdapter();       
+        notifier.addAdapter(adapter);        
+      } 
+    }   
+    return adapter;
+  }  
 }