wlu: con dev
diff --git a/1.5/plugins/org.eclipse.epf.library/src/org/eclipse/epf/library/util/SynFreeProcessConverter.java b/1.5/plugins/org.eclipse.epf.library/src/org/eclipse/epf/library/util/SynFreeProcessConverter.java
index 7b6b785..e669b20 100644
--- a/1.5/plugins/org.eclipse.epf.library/src/org/eclipse/epf/library/util/SynFreeProcessConverter.java
+++ b/1.5/plugins/org.eclipse.epf.library/src/org/eclipse/epf/library/util/SynFreeProcessConverter.java
@@ -14,6 +14,8 @@
 import org.eclipse.epf.library.configuration.ElementRealizer;
 import org.eclipse.epf.library.edit.util.DescriptorPropUtil;
 import org.eclipse.epf.library.edit.util.LibraryEditUtil;
+import org.eclipse.epf.library.edit.util.MethodLibraryPropUtil;
+import org.eclipse.epf.library.edit.util.MethodPluginPropUtil;
 import org.eclipse.epf.library.edit.util.ProcessPropUtil;
 import org.eclipse.epf.persistence.MultiFileXMIResourceImpl;
 import org.eclipse.epf.services.ILibraryPersister;
@@ -68,6 +70,18 @@
 	}
 	
 	public void convertLibrary(MethodLibrary lib,  boolean toSave) {
+		if (debug) {
+			System.out.println("LD> Begin convertLibrary: " + lib);
+			System.out.println("");
+		}
+		convertLibrary_(lib, toSave);
+		if (debug) {
+			System.out.println("LD> End convertLibrary: " + lib);
+			System.out.println("");
+		}
+	}
+	
+	private void convertLibrary_(MethodLibrary lib,  boolean toSave) {
 		if (lib == null) {
 			return;
 		}
@@ -79,7 +93,11 @@
 		for (int i = 0; i < plugins.size(); i++) {
 			convertPlugin(plugins.get(i), false);
 		}
+		
+		MethodLibraryPropUtil propUtil = MethodLibraryPropUtil.getMethodLibraryPropUtil();
+		propUtil.setSynFree(lib, true);
 		if (toSave) {
+			resouresToSave.add(lib.eResource());
 			save();
 		}
 	}
@@ -99,6 +117,9 @@
 		for (Process proc : processes) {
 			convertProcess(proc, false);
 		}		
+		
+		MethodPluginPropUtil propUtil = MethodPluginPropUtil.getMethodPluginPropUtil();
+		propUtil.setSynFree(plugin, true);
 		if (toSave) {
 			save();
 		}
@@ -241,6 +262,8 @@
 
 	private void convertManyEReference(Descriptor ownerDescriptor, MethodElement ownerLinkedElement,
 			EReference dFeature, EReference dFeatureExclude, EReference efeature) {
+		DescriptorPropUtil propUtil = DescriptorPropUtil.getDesciptorPropUtil();
+		
 		List<MethodElement> elements = ConfigurationHelper.calc0nFeatureValue(
 				ownerLinkedElement, efeature, getRealizer());
 		
@@ -263,7 +286,9 @@
 						localList.add(des);
 					} else {
 						linkedElementSet.add(linkedElement);
-						if (! elements.contains(linkedElement)) {
+						if (elements.contains(linkedElement)) {
+							propUtil.setCreatedByReference(des, true);
+						} else {
 							localList.add(des);
 						}
 					}
@@ -278,9 +303,8 @@
 		}
 		
 		//Handle localList
-		DescriptorPropUtil descriptorPropUtil = DescriptorPropUtil.getDesciptorPropUtil();
 		for (Descriptor des : localList) {
-			descriptorPropUtil.addLocalUse(des, ownerDescriptor, dFeature);
+			propUtil.addLocalUse(des, ownerDescriptor, dFeature);
 		}
 	}