diff --git a/features/org.eclipse.wst.common_core.feature.patch/buildnotes_org.eclipse.wst.common_core.feature.patch.html b/features/org.eclipse.wst.common_core.feature.patch/buildnotes_org.eclipse.wst.common_core.feature.patch.html
index 8ec7bc7..570145a 100644
--- a/features/org.eclipse.wst.common_core.feature.patch/buildnotes_org.eclipse.wst.common_core.feature.patch.html
+++ b/features/org.eclipse.wst.common_core.feature.patch/buildnotes_org.eclipse.wst.common_core.feature.patch.html
@@ -16,6 +16,7 @@
 <p>Bug <a href='https://bugs.eclipse.org/404092'>404092</a>. Failure to create a WAR file with project containing virtual folders</p>
 <p>Bug <a href='https://bugs.eclipse.org/407211'>407211</a>. URIHelper.getInputStream() does not work properly if an InterruptedException happens.</p>
 <p>Bug <a href='https://bugs.eclipse.org/404689'>404689</a>. Validation rule for target runtime is not working on EJB Validator</p>
+<p>Bug <a href='https://bugs.eclipse.org/436495'>436495</a>. ArrayIndexOutOfBoundsException occurs randomly during a headless build</p>
 
 </body>
 </html>
\ No newline at end of file
diff --git a/features/org.eclipse.wst.common_core.feature.patch/feature.properties b/features/org.eclipse.wst.common_core.feature.patch/feature.properties
index 07bab41..94c1dd1 100644
--- a/features/org.eclipse.wst.common_core.feature.patch/feature.properties
+++ b/features/org.eclipse.wst.common_core.feature.patch/feature.properties
@@ -30,6 +30,7 @@
 Bug https://bugs.eclipse.org/404092 Failure to create a WAR file with project containing virtual folders\n\
 Bug https://bugs.eclipse.org/407211 URIHelper.getInputStream() does not work properly if an InterruptedException happens.\n\
 Bug https://bugs.eclipse.org/404689 Validation rule for target runtime is not working on EJB Validator\n\
+Bug https://bugs.eclipse.org/436495 ArrayIndexOutOfBoundsException occurs randomly during a headless build\n\
 \n\
 # "copyright" property - text of the "Feature Update Copyright"
 copyright=\
diff --git a/features/org.eclipse.wst.common_core.feature.patch/feature.xml b/features/org.eclipse.wst.common_core.feature.patch/feature.xml
index 7b75739..23b68df 100644
--- a/features/org.eclipse.wst.common_core.feature.patch/feature.xml
+++ b/features/org.eclipse.wst.common_core.feature.patch/feature.xml
@@ -42,4 +42,11 @@
          version="0.0.0"
          unpack="false"/>
 
+   <plugin
+         id="org.eclipse.wst.common.emf"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
 </feature>
diff --git a/plugins/org.eclipse.wst.common.emf/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.common.emf/META-INF/MANIFEST.MF
index 5878621..67d316e 100644
--- a/plugins/org.eclipse.wst.common.emf/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.wst.common.emf/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.wst.common.emf; singleton:=true
-Bundle-Version: 1.2.100.qualifier
+Bundle-Version: 1.2.101.qualifier
 Bundle-Activator: org.eclipse.wst.common.internal.emf.plugin.EcoreUtilitiesPlugin
 Bundle-Vendor: %pluginProvider
 Bundle-Localization: plugin
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/ExtendedEcoreUtil.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/ExtendedEcoreUtil.java
index 823f191..5f49729 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/ExtendedEcoreUtil.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/ExtendedEcoreUtil.java
@@ -89,6 +89,37 @@
 	    {
 	     super.clear();
 	    }
+	    
+	    @Override
+		public synchronized Object [] data()
+		{
+			return super.data();
+		}
+
+	    @Override
+	    protected synchronized void ensureSafety()
+	    {
+	    	super.ensureSafety();
+	    }
+	    
+	    @Override
+	    protected synchronized Object [] newData(int capacity)
+	    {
+	    	return super.newData(capacity);
+	    }
+	    
+	    @Override
+	    public synchronized boolean addAllUnique(int index, Collection collection) 
+	    {
+	    	return super.addAllUnique(index, collection);
+	    }
+	    
+	    @Override
+	    public synchronized void addUnique(int index, Object object) 
+	    {
+	    	super.addUnique(index, object);
+	    }
+	    
 
 
 	    @Override
@@ -96,6 +127,11 @@
 	    {
 	    return super.set(index, object);
 	    }
+	    
+	    @Override
+	    public synchronized void setData(int size, Object [] data){
+	    	super.setData(size, data);
+	    }
 
 	    @Override
 		public synchronized void move(int newPosition, Object object)
