diff --git a/org.eclipse.epf.library.tests/Libraries/1.0.0/TestCommands/kelvinCase.tc b/org.eclipse.epf.library.tests/Libraries/1.0.0/TestCommands/kelvinCase.tc
index 44c94c8..2420323 100644
--- a/org.eclipse.epf.library.tests/Libraries/1.0.0/TestCommands/kelvinCase.tc
+++ b/org.eclipse.epf.library.tests/Libraries/1.0.0/TestCommands/kelvinCase.tc
@@ -76,8 +76,13 @@
 
 	</NewMethodElement>
 	
-	
-			
+<!-- 7. Suppress td_1 -->			
+	<EditMethodElement 
+		type="TaskDescriptor"
+		path="plugin_1/Content/CapabilityPatterns/cp_1/td_1"
+		suppressed="true"
+		>	
+	</EditMethodElement> 			
 	
 	<OutputLibrary outputFileName="t.xml"/>	
 	
diff --git a/org.eclipse.epf.library.tests/src/org/eclipse/epf/library/tester/impl/testcommands/TCEditMethodElementBase.java b/org.eclipse.epf.library.tests/src/org/eclipse/epf/library/tester/impl/testcommands/TCEditMethodElementBase.java
index bb233a3..53b2b61 100644
--- a/org.eclipse.epf.library.tests/src/org/eclipse/epf/library/tester/impl/testcommands/TCEditMethodElementBase.java
+++ b/org.eclipse.epf.library.tests/src/org/eclipse/epf/library/tester/impl/testcommands/TCEditMethodElementBase.java
@@ -255,10 +255,10 @@
 			if (at_val == null || at_val.length() == 0) {
 				continue;
 			}
-			String dataTypeName = dataType.getName();
+			Object newValue = getESetValue(dataType, at_val);
 			
-			if (dataTypeName.equals("String")) {
-				methodElement.eSet(eatt, at_val);
+			if (newValue != null) {
+				methodElement.eSet(eatt, newValue);
 			} else {
 				getOwner().trace("Warning: not handled dataType: " + dataType);
 				getOwner().trace("Warning: at_tag: " + at_tag);
@@ -269,6 +269,22 @@
 		}
 	}
 	
+	private Object getESetValue(EDataType dataType, String strVal) {
+		Class cls = dataType.getInstanceClass();		
+		if (cls.equals(String.class)) {
+			return strVal;
+		}
+		if (cls.equals(Boolean.class)) {
+			boolean b = strVal.equalsIgnoreCase("true");
+			if (!b && !strVal.equalsIgnoreCase("false")) {
+				throw new UnsupportedOperationException();
+			}
+			return new Boolean(b);
+		}
+		
+		return null;
+	}
+	
 	private void eSetByValueChildren() {
 		MethodLibrary currLib = getOwner().getCurrentBaseLib();	
 		Map refMap = getTagData().refMap;
