diff --git a/plugins/org.eclipse.jst.jee/jeecreation/org/eclipse/jst/jee/model/internal/JEE5ModelProvider.java b/plugins/org.eclipse.jst.jee/jeecreation/org/eclipse/jst/jee/model/internal/JEE5ModelProvider.java
index 3273f84..c417e0b 100644
--- a/plugins/org.eclipse.jst.jee/jeecreation/org/eclipse/jst/jee/model/internal/JEE5ModelProvider.java
+++ b/plugins/org.eclipse.jst.jee/jeecreation/org/eclipse/jst/jee/model/internal/JEE5ModelProvider.java
@@ -51,6 +51,7 @@
 import org.eclipse.wst.common.componentcore.internal.impl.ModuleURIUtil;
 import org.eclipse.wst.common.componentcore.internal.impl.PlatformURLModuleConnection;
 import org.eclipse.wst.common.componentcore.internal.impl.WTPResourceFactoryRegistry;
+import org.eclipse.wst.common.componentcore.resources.IVirtualFile;
 import org.eclipse.wst.common.componentcore.resources.IVirtualFolder;
 import org.eclipse.wst.common.internal.emfworkbench.WorkbenchResourceHelper;
 import org.eclipse.wst.common.internal.emfworkbench.validateedit.ResourceStateInputProvider;
@@ -159,15 +160,12 @@
 		String modelPathURI = innerModelPath.toString();
 		URI uri = URI.createURI(modelPathURI);
 		
-		IPath projURIPath = new Path("");//$NON-NLS-1$
-		projURIPath = projURIPath.append(container.getProjectRelativePath());
-		projURIPath = projURIPath.addTrailingSeparator();
-		projURIPath = projURIPath.append(innerModelPath);
-		URI projURI = URI.createURI(projURIPath.toString());
+		IVirtualFile dd = container.getFile(innerModelPath);
+		URI projURI = URI.createURI(dd.getProjectRelativePath().toString());
+		
 		XMLResourceImpl res = null;
 		try {
-			if (proj.getFile(projURI.toString()).exists())
-			{
+			if (dd.exists()) {
 				res = (XMLResourceImpl) resSet.getResource(getModuleURI(uri),true);
 				addManagedResource(res);
 			} else {//First find in resource set, then create if not found new Empty Resource.
diff --git a/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/NewWebClassWizardPage.java b/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/NewWebClassWizardPage.java
index 07d9961..47c9247 100644
--- a/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/NewWebClassWizardPage.java
+++ b/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/NewWebClassWizardPage.java
@@ -62,6 +62,7 @@
 import org.eclipse.wst.common.componentcore.ComponentCore;
 import org.eclipse.wst.common.componentcore.internal.util.IModuleConstants;
 import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+import org.eclipse.wst.common.componentcore.resources.IVirtualFile;
 import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
 import org.eclipse.wst.common.project.facet.core.IFacetedProject;
 import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
@@ -203,7 +204,7 @@
 		IVirtualComponent component = ComponentCore.createComponent(project);
 		if(component.getRootFolder() != null
 				&& component.getRootFolder().getUnderlyingFolder() != null){
-			IFile ddXmlFile = component.getRootFolder().getUnderlyingFolder().getFile(new Path(J2EEConstants.WEBAPP_DD_URI));
+			IVirtualFile ddXmlFile = component.getRootFolder().getFile(new Path(J2EEConstants.WEBAPP_DD_URI));
 			if (!ddXmlFile.exists())
 			{
 				// add a flag into the model to create the DD at the beginning of the operation
