325733 - to 3.3 maintenance (no test)
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/VirtualComponentFlattenUtility.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/VirtualComponentFlattenUtility.java
index 01aad61..eb001ac 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/VirtualComponentFlattenUtility.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/VirtualComponentFlattenUtility.java
@@ -25,6 +25,7 @@
 import org.eclipse.core.runtime.Path;
 import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
 import org.eclipse.wst.common.componentcore.resources.IVirtualContainer;
+import org.eclipse.wst.common.componentcore.resources.IVirtualFile;
 import org.eclipse.wst.common.componentcore.resources.IVirtualResource;
 
 /**
@@ -104,14 +105,16 @@
 	}
 	
 	public void addFile(IVirtualComponent current, IPath path, IAdaptable file) {
+		IVirtualFile vf = (IVirtualFile)file.getAdapter(IVirtualFile.class);
+		String vfName = vf.getName();
 		IFile f = (IFile)file.getAdapter(IFile.class);
 		IFlatFile mf = null;
 		if( f != null )
-			 mf = createModuleFile(f, path.makeRelative());
+			 mf = new FlatFile(f, vfName, path);
 		else {
 			File f2 = (File)file.getAdapter(File.class);
 			if( f2 != null )
-				mf = new FlatFile(f2, f2.getName(), path.makeRelative());
+				mf = new FlatFile(f2, vfName, path.makeRelative());
 		}
 		if( mf != null ) {
 			if (handler == null || handler.shouldAddComponentFile(current, mf)) {
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/VirtualFile.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/VirtualFile.java
index 9aa66c6..c97ed5a 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/VirtualFile.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/VirtualFile.java
@@ -128,6 +128,10 @@
 		if( IFile.class.equals(adapter)) {
 			return getUnderlyingFile();
 		}
+		if( IVirtualFile.class.equals(adapter))
+			return this;
+		if( IVirtualResource.class.equals(adapter))
+			return this;
 		return null;
 	}
 }