diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/metadataprocessors/internal/MetaDataEnabledFeatureRegistry.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/metadataprocessors/internal/MetaDataEnabledFeatureRegistry.java
index 2f34223..4632f5d 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/metadataprocessors/internal/MetaDataEnabledFeatureRegistry.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/metadataprocessors/internal/MetaDataEnabledFeatureRegistry.java
@@ -13,6 +13,7 @@
 package org.eclipse.jst.jsf.metadataprocessors.internal;
 
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
@@ -91,7 +92,10 @@
 			}
 			else {
 				List list = featuresMap.get(typeId);
-				list.add(aFeature);
+				if (list != null)
+				{
+					list.add(aFeature);
+				}
 			}
 		}
 	}
@@ -123,7 +127,7 @@
 			featuresMap.put(typeId,new ArrayList());
 		
 		//copy current featuresMapped to typeId into return list
-		List<IMetaDataEnabledFeatureExtension> srcList = featuresMap.get(typeId);
+		List<IMetaDataEnabledFeatureExtension> srcList = getExtensionsForId(typeId);
 		List<IMetaDataEnabledFeatureExtension> ret = new ArrayList<IMetaDataEnabledFeatureExtension>(srcList.size());
 		copy(ret, srcList);	
 		
@@ -158,12 +162,20 @@
 		for (Iterator it=typeCacheMap.keySet().iterator();it.hasNext();){
 			String featureTypeId = (String)it.next();
 			Class featureTypeClass = typeCacheMap.get(featureTypeId);
-			if (featureTypeClass.isAssignableFrom(typeClass))	{	
-				ret.addAll(featuresMap.get(featureTypeId));
+			if (featureTypeClass != null && featureTypeClass.isAssignableFrom(typeClass))	{	
+				ret.addAll(getExtensionsForId(featureTypeId));
 			}
 		}
 		return ret;
 	}
 	
-
+	private List<IMetaDataEnabledFeatureExtension> getExtensionsForId(String featureTypeId)
+	{
+		List<IMetaDataEnabledFeatureExtension> list = featuresMap.get(featureTypeId);
+		if (list == null)
+		{
+			return Collections.emptyList();
+		}
+		return Collections.unmodifiableList(list);
+	}
 }
