wlu: 208459 fix
diff --git a/org.eclipse.epf.export/src/org/eclipse/epf/export/services/DiagramHandler.java b/org.eclipse.epf.export/src/org/eclipse/epf/export/services/DiagramHandler.java
index 98c353e..240cb91 100644
--- a/org.eclipse.epf.export/src/org/eclipse/epf/export/services/DiagramHandler.java
+++ b/org.eclipse.epf.export/src/org/eclipse/epf/export/services/DiagramHandler.java
@@ -17,13 +17,15 @@
 import java.util.List;
 import java.util.Map;
 
+import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.epf.common.utils.FileUtil;
-import org.eclipse.epf.common.utils.NetUtil;
 import org.eclipse.epf.library.ILibraryResourceManager;
 import org.eclipse.epf.library.util.ResourceHelper;
 import org.eclipse.epf.uma.CapabilityPattern;
 import org.eclipse.epf.uma.DeliveryProcess;
 import org.eclipse.epf.uma.MethodElement;
+import org.eclipse.epf.uma.ProcessComponent;
+import org.eclipse.epf.uma.util.UmaUtil;
 
 
 /**
@@ -211,14 +213,43 @@
 		String diagramPath = elementPath + elem.getName() + File.separator + 
 								"diagram.xmi";				//$NON-NLS-1$
 		
+		if (debug) {
+			System.out.println("LD> diagramPath 0: " + diagramPath); //$NON-NLS-1$
+		}
+
 		File srcRoot = sourceLibRoot;
 		File tgtRoot = targetLibRoot;
+		
+		
 		if (export) {
 			srcRoot =  getRoot(elem);
 		} else {
 			tgtRoot =  getRoot(elem);
 		}
 		
+		if (export) {
+			Resource res = elem.eResource();
+			if (res != null) {
+				File modelFile = new File(res.getURI().toFileString());
+				File folder = modelFile.getParentFile();
+				String folderPath = folder.getAbsolutePath();
+
+				int ix = srcRoot.getAbsolutePath().length();
+				if (folderPath.length() > ix
+						&& folderPath.substring(0, ix).equalsIgnoreCase(
+								srcRoot.getAbsolutePath())) {
+					diagramPath = folderPath.substring(ix + 1) + File.separator
+							+ "diagram.xmi"; //$NON-NLS-1$
+				}
+			}
+		} else {
+			ProcessComponent pc = UmaUtil.getProcessComponent(elem);
+			if (pc != null && ! pc.getName().equals(elem.getName())) {
+				diagramPath = elementPath + pc.getName() + File.separator
+						+ "diagram.xmi"; //$NON-NLS-1$
+			}
+		}
+		
 		files[0] = new File(srcRoot, diagramPath);
 		files[1] = new File(tgtRoot, diagramPath);		
 
@@ -238,5 +269,9 @@
 		File root = (new File(pluginPath)).getParentFile();
 		return root;
 	}
+
+	public File getTargetLibRoot() {
+		return targetLibRoot;
+	}
 	
 }
diff --git a/org.eclipse.epf.import.xml/src/org/eclipse/epf/importing/xml/services/ImportXMLService.java b/org.eclipse.epf.import.xml/src/org/eclipse/epf/importing/xml/services/ImportXMLService.java
index e99737f..41642b3 100644
--- a/org.eclipse.epf.import.xml/src/org/eclipse/epf/importing/xml/services/ImportXMLService.java
+++ b/org.eclipse.epf.import.xml/src/org/eclipse/epf/importing/xml/services/ImportXMLService.java
@@ -293,7 +293,7 @@
 				//[1]: targetFile
 				protected File[] getFiles(org.eclipse.epf.uma.MethodElement elem) {
 					File[] files = super.getFiles(elem, false);
-					
+										
 					EDataObject xmlObj = xmlLib.getElement(elem.getGuid());
 					if (xmlObj instanceof org.eclipse.epf.xml.uma.Process) {
 						org.eclipse.epf.xml.uma.Process proc = 
@@ -303,7 +303,8 @@
 							File file = new File(getSourceLibRoot(), uri);
 							//System.out.println("LD: file: " + file);
 							if (file.exists()) {
-								files[0] = file;								
+								files[0] = file;
+								files[1] = new File(getTargetLibRoot(), uri);
 							} else {
 								//System.out.println("LD: files[0]: " + files[0]);
 							}