diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/AbstractFlattenParticipant.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/AbstractFlattenParticipant.java
index 024f710..a844e07 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/AbstractFlattenParticipant.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/AbstractFlattenParticipant.java
@@ -60,4 +60,8 @@
 		return false;
 	}
 
+	public List<IVirtualReference> getChildModules(IVirtualComponent rootComponent, FlatComponentTaskModel dataModel) {
+		return null;
+	}
+
 }
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/FlatVirtualComponent.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/FlatVirtualComponent.java
index 299c5b9..7a019fe 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/FlatVirtualComponent.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/FlatVirtualComponent.java
@@ -247,11 +247,49 @@
 					children.removeAll(duplicates);
 					children.add(cm);
 				}
-			}
+			}	
     	}
+    	addUsedReferencesFromParticipants(util, vc, root);    	
 	}
 	
 	/**
+	 * Add references provided by participants (e.g., components provided by a child to the receiving parent by 
+	 * mapping it to ../
+	 * @param util
+	 * @param vc
+	 * @param root
+	 * @throws CoreException
+	 */
+	
+	protected void addUsedReferencesFromParticipants(VirtualComponentFlattenUtility util, IVirtualComponent vc, IPath root) throws CoreException{		
+		List<IVirtualReference> references = null;
+		for( int i = 0; i < participants.length; i++ ) {
+			references = participants[i].getChildModules(vc, dataModel);
+			if (references == null || references.isEmpty()){
+				continue;
+			}
+			
+			for (IVirtualReference reference:references) {
+				IVirtualComponent virtualComp = reference.getReferencedComponent();
+				if (reference.getDependencyType() == DependencyType.USES ) {		
+					if( !isChildModule(reference)) {
+						addNonChildUsedReference(util, vc, reference, root.append(reference.getRuntimePath()));
+					} else {
+						ChildModuleReference cm = new ChildModuleReference(reference, root);
+						List<IChildModuleReference> duplicates = new ArrayList();
+						for( IChildModuleReference tmp : children ) {
+							if(tmp.getRelativeURI().equals(cm.getRelativeURI()))
+								duplicates.add(tmp);
+						}
+						children.removeAll(duplicates);
+						children.add(cm);
+					}
+				}	
+			}
+		}	
+	}
+
+	/**
 	 * Should we expose this used reference as a member file?
 	 * 
 	 * @param currentComponent the current component we're traversing
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/IFlattenParticipant.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/IFlattenParticipant.java
index 54fd742..7beb7b3 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/IFlattenParticipant.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/IFlattenParticipant.java
@@ -162,5 +162,14 @@
 	 */
 	public void finalize(IVirtualComponent component, 
 			FlatComponentTaskModel dataModel, List<IFlatResource> resources);
+	
+	
+	/**
+	 * Return a list of references that this participant believes should be treated as child modules.
+	 * @param rootComponent
+	 * @param dataModel
+	 * @return
+	 */
+	public List<IVirtualReference> getChildModules(IVirtualComponent rootComponent, FlatComponentTaskModel dataModel);
 
 }
