diff --git a/plugins/org.eclipse.jst.j2ee/META-INF/MANIFEST.MF b/plugins/org.eclipse.jst.j2ee/META-INF/MANIFEST.MF
index af0da2b..5ed7e97 100644
--- a/plugins/org.eclipse.jst.j2ee/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.jst.j2ee/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %Bundle-Name.0
 Bundle-SymbolicName: org.eclipse.jst.j2ee; singleton:=true
-Bundle-Version: 1.1.900.qualifier
+Bundle-Version: 1.1.901.qualifier
 Bundle-Activator: org.eclipse.jst.j2ee.internal.plugin.J2EEPlugin
 Bundle-Vendor: %Bundle-Vendor.0
 Bundle-Localization: plugin
diff --git a/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/project/facet/J2EEModuleFacetInstallDataModelProvider.java b/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/project/facet/J2EEModuleFacetInstallDataModelProvider.java
index e16ab5e..40ec54d 100644
--- a/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/project/facet/J2EEModuleFacetInstallDataModelProvider.java
+++ b/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/project/facet/J2EEModuleFacetInstallDataModelProvider.java
@@ -209,18 +209,23 @@
 		}
 		if (facetProj != null){
 			IRuntime runtime  = facetProj.getPrimaryRuntime();
-				if(runtime != null){
-					for (IProjectFacet facet:fpjwc.getFixedProjectFacets()){
-						try {
-							IProjectFacetVersion facetVersion = facet.getLatestSupportedVersion(runtime);
-							if (facetVersion == null){
-								return false;
-							}
-						} catch (CoreException e) {
-							throw new RuntimeException( e );
-						}
-					}
-				}
+			if (runtime == null || fpjwc == null){
+				return false;
+			}
+			
+			for (IProjectFacet facet:fpjwc.getFixedProjectFacets()){
+				if (facet == null)
+					return false;
+				
+				try {
+					IProjectFacetVersion facetVersion = facet.getLatestSupportedVersion(runtime);
+					if (facetVersion == null){
+						return false;
+ 					}
+				} catch (CoreException e) {
+					throw new RuntimeException( e );
+ 				}
+ 			}
 		}
 		return true;
 	}
@@ -261,7 +266,7 @@
             	}
             	else
             	{
-            		this.javaFacetInstallConfig = (JavaFacetInstallConfig) Platform.getAdapterManager().getAdapter( config, JavaFacetInstallConfig.class );
+            		this.javaFacetInstallConfig = Platform.getAdapterManager().getAdapter( config, JavaFacetInstallConfig.class );
             	}
             	if (this.javaFacetInstallConfig != null)
             	{
diff --git a/plugins/org.eclipse.jst.j2ee/pom.xml b/plugins/org.eclipse.jst.j2ee/pom.xml
index 5729824..e368c17 100644
--- a/plugins/org.eclipse.jst.j2ee/pom.xml
+++ b/plugins/org.eclipse.jst.j2ee/pom.xml
@@ -22,6 +22,6 @@
 
   <groupId>org.eclipse.webtools.javaee</groupId>
   <artifactId>org.eclipse.jst.j2ee</artifactId>
-  <version>1.1.900-SNAPSHOT</version>
+  <version>1.1.901-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
