diff --git a/plugins/org.eclipse.jst.j2ee.ejb/ejbcreation/org/eclipse/jst/j2ee/internal/ejb/project/operations/EJBComponentImportDataModelProvider.java b/plugins/org.eclipse.jst.j2ee.ejb/ejbcreation/org/eclipse/jst/j2ee/internal/ejb/project/operations/EJBComponentImportDataModelProvider.java
index 82e7afe..63a4bb9 100644
--- a/plugins/org.eclipse.jst.j2ee.ejb/ejbcreation/org/eclipse/jst/j2ee/internal/ejb/project/operations/EJBComponentImportDataModelProvider.java
+++ b/plugins/org.eclipse.jst.j2ee.ejb/ejbcreation/org/eclipse/jst/j2ee/internal/ejb/project/operations/EJBComponentImportDataModelProvider.java
@@ -72,16 +72,8 @@
 	public boolean propertySet(String propertyName, Object propertyValue) {
 		boolean set = super.propertySet(propertyName, propertyValue);
 		if (propertyName.equals(ARCHIVE_WRAPPER)) {
-			IDataModel moduleDM = model.getNestedModel(NESTED_MODEL_J2EE_COMPONENT_CREATION);
 			if (getArchiveWrapper() != null) {
-				
-				FacetDataModelMap map = (FacetDataModelMap) moduleDM.getProperty(IFacetProjectCreationDataModelProperties.FACET_DM_MAP);
-				IDataModel ejbFacetDataModel = map.getFacetDataModel( J2EEProjectUtilities.EJB );
-
-				int version = getModuleSpecVersion();
-				String versionText = J2EEVersionUtil.getEJBTextVersion( version );
-				ejbFacetDataModel.setStringProperty(IFacetDataModelProperties.FACET_VERSION_STR, versionText);
-				updateJavaFacetVersion();
+				refreshInterpretedSpecVersion();
 				model.notifyPropertyChange(PROJECT_NAME, IDataModel.VALID_VALUES_CHG);
 			}
 		}
@@ -89,6 +81,17 @@
 	}
 
 	@Override
+	protected void refreshInterpretedSpecVersion(){
+		IDataModel moduleDM = model.getNestedModel(NESTED_MODEL_J2EE_COMPONENT_CREATION);
+		FacetDataModelMap map = (FacetDataModelMap) moduleDM.getProperty(IFacetProjectCreationDataModelProperties.FACET_DM_MAP);
+		IDataModel ejbFacetDataModel = map.getFacetDataModel( J2EEProjectUtilities.EJB );
+		int version = getInterpretedSpecVersion(getArchiveWrapper()).getVersion();
+		String versionText = J2EEVersionUtil.getEJBTextVersion( version );
+		ejbFacetDataModel.setStringProperty(IFacetDataModelProperties.FACET_VERSION_STR, versionText);
+		updateJavaFacetVersion();
+	}
+	
+	@Override
 	public void init() {
 		super.init();
 		IDataModel componentCreationDM = model.getNestedModel(NESTED_MODEL_J2EE_COMPONENT_CREATION);
