Index: test/edu/ucsb/nceas/metacat/dataone/CNodeServiceTest.java
===================================================================
--- test/edu/ucsb/nceas/metacat/dataone/CNodeServiceTest.java	(revision 6396)
+++ test/edu/ucsb/nceas/metacat/dataone/CNodeServiceTest.java	(revision 6397)
@@ -116,8 +116,8 @@
 			Identifier guid = new Identifier();
 			guid.setValue("testRegisterSystemMetadata." + System.currentTimeMillis());
 			SystemMetadata sysmeta = createSystemMetadata(guid, session.getSubject(), null);
-			boolean result = CNodeService.getInstance().registerSystemMetadata(session, guid, sysmeta);
-			assertTrue(result);
+			Identifier retGuid = CNodeService.getInstance().registerSystemMetadata(session, guid, sysmeta);
+			assertEquals(guid.getValue(), retGuid.getValue());
         } catch(Exception e) {
             fail("Unexpected error: " + e.getMessage());
         }
@@ -134,8 +134,8 @@
 			Identifier guid = new Identifier();
 			guid.setValue("testGetSystemMetadata." + System.currentTimeMillis());
 			SystemMetadata sysmeta = createSystemMetadata(guid, session.getSubject(), null);
-			boolean result = CNodeService.getInstance().registerSystemMetadata(session, guid, sysmeta);
-			assertTrue(result);
+			Identifier retGuid = CNodeService.getInstance().registerSystemMetadata(session, guid, sysmeta);
+			assertEquals(guid.getValue(), retGuid.getValue());
 			// get it
 			SystemMetadata retSysmeta = CNodeService.getInstance().getSystemMetadata(session, guid);
 			// check it
@@ -196,7 +196,7 @@
 			InputStream object = new ByteArrayInputStream("test".getBytes("UTF-8"));
 			SystemMetadata sysmeta = createSystemMetadata(guid, session.getSubject(), object);
 			Identifier pid = CNodeService.getInstance().create(session, guid, object, sysmeta);
-			assertEquals(guid, pid);
+			assertEquals(guid.getValue(), pid.getValue());
 			// get it
 			InputStream retObject = CNodeService.getInstance().get(session, pid);
 			// check it
@@ -220,14 +220,14 @@
 			describePid.setValue("describePid." + System.currentTimeMillis());
 			//sysmeta.addDescribe(describePid);
 			// save it
-			boolean result = CNodeService.getInstance().registerSystemMetadata(session, guid, sysmeta);
-			assertTrue(result);
+			Identifier retGuid = CNodeService.getInstance().registerSystemMetadata(session, guid, sysmeta);
+			assertEquals(guid.getValue(), retGuid.getValue());
 			// save the other
 			SystemMetadata describeSysmeta = createSystemMetadata(describePid, session.getSubject(), null);
-			result = CNodeService.getInstance().registerSystemMetadata(session, describePid, describeSysmeta);
-			assertTrue(result);
+			Identifier retDescribePid = CNodeService.getInstance().registerSystemMetadata(session, describePid, describeSysmeta);
+			assertEquals(describePid.getValue(), retDescribePid.getValue());
 			// check it
-			result = CNodeService.getInstance().assertRelation(session, guid, "describes", describePid);
+			boolean result = CNodeService.getInstance().assertRelation(session, guid, "describes", describePid);
 			assertTrue(result);
         } catch(Exception e) {
         	e.printStackTrace();
@@ -244,8 +244,8 @@
 			guid.setValue("testChecksum." + System.currentTimeMillis());
 			SystemMetadata sysmeta = createSystemMetadata(guid, session.getSubject(), null);
 			// save it
-			boolean result = CNodeService.getInstance().registerSystemMetadata(session, guid, sysmeta);
-			assertTrue(result);
+			Identifier retGuid = CNodeService.getInstance().registerSystemMetadata(session, guid, sysmeta);
+			assertEquals(guid.getValue(), retGuid.getValue());
 			// check it
 			Checksum checksum = CNodeService.getInstance().getChecksum(session, guid);
 			assertEquals(sysmeta.getChecksum().getValue(), checksum.getValue());
@@ -296,13 +296,13 @@
 			SystemMetadata sysmeta = createSystemMetadata(guid, session.getSubject(), null);
 			
 			// save it
-			boolean result = CNodeService.getInstance().registerSystemMetadata(session, guid, sysmeta);
-			assertTrue(result);
+			Identifier retGuid = CNodeService.getInstance().registerSystemMetadata(session, guid, sysmeta);
+			assertEquals(guid.getValue(), retGuid.getValue());
 			// search for it
 			ObjectList objectList = CNodeService.getInstance().search(session, null, null);
 			// check it
 			assertNotNull(objectList);
-			result = false;
+			boolean result = false;
 			for (ObjectInfo objectInfo: objectList.getObjectInfoList()) {
 				Identifier pid = objectInfo.getIdentifier();
 				if (pid.getValue().equals(guid.getValue())) {
@@ -325,8 +325,8 @@
 			guid.setValue("testSetOwner." + System.currentTimeMillis());
 			SystemMetadata sysmeta = createSystemMetadata(guid, session.getSubject(), null);
 			// save it
-			boolean result = CNodeService.getInstance().registerSystemMetadata(session, guid, sysmeta);
-			assertTrue(result);
+			Identifier retGuid = CNodeService.getInstance().registerSystemMetadata(session, guid, sysmeta);
+			assertEquals(guid.getValue(), retGuid.getValue());
 			Subject rightsHolder = new Subject();
 			rightsHolder.setValue("newUser");
 			// set it
@@ -352,8 +352,8 @@
 			guid.setValue("testSetAccessPolicy." + System.currentTimeMillis());
 			SystemMetadata sysmeta = createSystemMetadata(guid, session.getSubject(), null);
 			// save it
-			boolean result = CNodeService.getInstance().registerSystemMetadata(session, guid, sysmeta);
-			assertTrue(result);
+			Identifier retGuid = CNodeService.getInstance().registerSystemMetadata(session, guid, sysmeta);
+			assertEquals(guid.getValue(), retGuid.getValue());
 			AccessPolicy accessPolicy = new AccessPolicy();
 			AccessRule accessRule = new AccessRule();
 			accessRule.addPermission(Permission.WRITE);
@@ -362,7 +362,7 @@
 			accessRule.addSubject(publicSubject);
 			accessPolicy.addAllow(accessRule);
 			// set it
-			result = CNodeService.getInstance().setAccessPolicy(session, guid, accessPolicy );
+			boolean result = CNodeService.getInstance().setAccessPolicy(session, guid, accessPolicy );
 			assertTrue(result);
 			// check it
 			result = CNodeService.getInstance().isAuthorized(session, guid, Permission.WRITE);
@@ -381,14 +381,14 @@
 			guid.setValue("testIsAuthorized." + System.currentTimeMillis());
 			SystemMetadata sysmeta = createSystemMetadata(guid, session.getSubject(), null);
 			// save it
-			boolean result = CNodeService.getInstance().registerSystemMetadata(session, guid, sysmeta);
-			assertTrue(result);
+			Identifier retGuid = CNodeService.getInstance().registerSystemMetadata(session, guid, sysmeta);
+			assertEquals(guid.getValue(), retGuid.getValue());
 			// check it
 			Subject publicSubject = new Subject();
 			publicSubject.setValue(Constants.PUBLIC_SUBJECT);
 			session.setSubject(publicSubject);
 			// public read
-			result = CNodeService.getInstance().isAuthorized(session, guid, Permission.READ);
+			boolean result = CNodeService.getInstance().isAuthorized(session, guid, Permission.READ);
 			assertTrue(result);
 			// not public write
 			try {
@@ -413,8 +413,8 @@
 			guid.setValue("testReplicationPolicy." + System.currentTimeMillis());
 			SystemMetadata sysmeta = createSystemMetadata(guid, session.getSubject(), null);
 			// save it
-			boolean result = CNodeService.getInstance().registerSystemMetadata(session, guid, sysmeta);
-			assertTrue(result);
+			Identifier retGuid = CNodeService.getInstance().registerSystemMetadata(session, guid, sysmeta);
+			assertEquals(guid.getValue(), retGuid.getValue());
 			
 			ReplicationPolicy policy = new ReplicationPolicy();
 			NodeReference node = new NodeReference();
@@ -421,7 +421,7 @@
 			node.setValue("testNode");
 			policy.addPreferredMemberNode(node );
 			// set it
-			result = CNodeService.getInstance().setReplicationPolicy(session, guid, policy);
+			boolean result = CNodeService.getInstance().setReplicationPolicy(session, guid, policy);
 			assertTrue(result);
 			// get it
 			sysmeta = CNodeService.getInstance().getSystemMetadata(session, guid);
@@ -450,11 +450,11 @@
 			replica.setReplicaVerified(new Date());
 			sysmeta.addReplica(replica );
 			// save it
-			boolean result = CNodeService.getInstance().registerSystemMetadata(session, guid, sysmeta);
-			assertTrue(result);
+			Identifier retGuid = CNodeService.getInstance().registerSystemMetadata(session, guid, sysmeta);
+			assertEquals(guid.getValue(), retGuid.getValue());
 			// set it
 			ReplicationStatus status = ReplicationStatus.COMPLETED;
-			result = CNodeService.getInstance().setReplicationStatus(session, guid, status);
+			boolean result = CNodeService.getInstance().setReplicationStatus(session, guid, status);
 			assertTrue(result);
 			// get it
 			sysmeta = CNodeService.getInstance().getSystemMetadata(session, guid);
Index: test/edu/ucsb/nceas/metacat/dataone/D1NodeServiceTest.java
===================================================================
--- test/edu/ucsb/nceas/metacat/dataone/D1NodeServiceTest.java	(revision 6396)
+++ test/edu/ucsb/nceas/metacat/dataone/D1NodeServiceTest.java	(revision 6397)
@@ -43,7 +43,6 @@
 import org.dataone.service.types.v1.AccessPolicy;
 import org.dataone.service.types.v1.AccessRule;
 import org.dataone.service.types.v1.Checksum;
-import org.dataone.service.types.v1.ChecksumAlgorithm;
 import org.dataone.service.types.v1.Identifier;
 import org.dataone.service.types.v1.NodeReference;
 import org.dataone.service.types.v1.ObjectFormatList;
@@ -154,7 +153,7 @@
         if (object != null) {
         	checksumS = checksum(object);
         }
-        ChecksumAlgorithm ca = ChecksumAlgorithm.convert("MD5");
+        String ca = "MD5";
         Checksum checksum = new Checksum();
         checksum.setValue(checksumS);
         checksum.setAlgorithm(ca);
Index: lib/d1_libclient_java-0.6.4-SNAPSHOT.jar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: lib/d1_common_java-0.6.4-SNAPSHOT.jar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: src/edu/ucsb/nceas/metacat/restservice/MNResourceHandler.java
===================================================================
--- src/edu/ucsb/nceas/metacat/restservice/MNResourceHandler.java	(revision 6396)
+++ src/edu/ucsb/nceas/metacat/restservice/MNResourceHandler.java	(revision 6397)
@@ -569,7 +569,7 @@
         DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss.SZ");
         response.addHeader("pid", pid);
         response.addHeader("checksum", dr.getDataONE_Checksum().getValue());
-        response.addHeader("checksum_algorithm", dr.getDataONE_Checksum().getAlgorithm().xmlValue());
+        response.addHeader("checksum_algorithm", dr.getDataONE_Checksum().getAlgorithm());
         response.addHeader("content_length", dr.getContent_Length() + "");
         response.addHeader("last_modified", dateFormat.format(dr.getLast_Modified()));
         response.addHeader("format", dr.getDataONE_ObjectFormatIdentifier().getValue());
Index: src/edu/ucsb/nceas/metacat/restservice/ResourceHandler.java
===================================================================
--- src/edu/ucsb/nceas/metacat/restservice/ResourceHandler.java	(revision 6396)
+++ src/edu/ucsb/nceas/metacat/restservice/ResourceHandler.java	(revision 6397)
@@ -824,7 +824,7 @@
             DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss.SZ");
             response.addHeader("guid", guid);
             response.addHeader("checksum", dr.getDataONE_Checksum().getValue());
-            response.addHeader("checksum_algorithm", dr.getDataONE_Checksum().getAlgorithm().xmlValue());
+            response.addHeader("checksum_algorithm", dr.getDataONE_Checksum().getAlgorithm());
             response.addHeader("content_length", dr.getContent_Length() + "");
             response.addHeader("last_modified", dateFormat.format(dr.getLast_Modified()));
             response.addHeader("format", dr.getDataONE_ObjectFormatIdentifier().getValue());
@@ -2138,9 +2138,9 @@
 			guid.setValue(pid);
 			logMetacat.debug("registering system metadata with pid "
 					+ guid.getValue());
-			boolean result = CNodeService.getInstance().registerSystemMetadata(
+			Identifier retGuid = CNodeService.getInstance().registerSystemMetadata(
 					session, guid, systemMetadata);
-			TypeMarshaller.marshalTypeToOutputStream(result, out);
+			TypeMarshaller.marshalTypeToOutputStream(retGuid, out);
 
 		} catch (NotAuthorized e) {
 			response.setStatus(500);
Index: src/edu/ucsb/nceas/metacat/restservice/CNResourceHandler.java
===================================================================
--- src/edu/ucsb/nceas/metacat/restservice/CNResourceHandler.java	(revision 6396)
+++ src/edu/ucsb/nceas/metacat/restservice/CNResourceHandler.java	(revision 6397)
@@ -60,7 +60,6 @@
 import org.dataone.service.types.v1.ObjectFormatList;
 import org.dataone.service.types.v1.ObjectLocationList;
 import org.dataone.service.types.v1.Permission;
-import org.dataone.service.types.v1.QueryType;
 import org.dataone.service.types.v1.Subject;
 import org.dataone.service.types.v1.SystemMetadata;
 import org.dataone.service.util.TypeMarshaller;
@@ -758,7 +757,7 @@
      * @throws IllegalAccessException 
      * @throws InstantiationException 
      */
-    protected boolean registerSystemMetadata(String pid) throws ServiceFailure, InvalidRequest, IOException, FileUploadException, JiBXException, NotImplemented, NotAuthorized, InvalidSystemMetadata, InstantiationException, IllegalAccessException {
+    protected Identifier registerSystemMetadata(String pid) throws ServiceFailure, InvalidRequest, IOException, FileUploadException, JiBXException, NotImplemented, NotAuthorized, InvalidSystemMetadata, InstantiationException, IllegalAccessException {
 		logMetacat.debug("Entering registerSystemMetadata: " + pid);
 
 		// get the system metadata from the request
@@ -767,11 +766,11 @@
 		Identifier guid = new Identifier();
 		guid.setValue(pid);
 		logMetacat.debug("registering system metadata with pid " + guid.getValue());
-		boolean result = CNodeService.getInstance().registerSystemMetadata(session, guid, systemMetadata);
+		Identifier retGuid = CNodeService.getInstance().registerSystemMetadata(session, guid, systemMetadata);
 		
 		response.setStatus(200);
 		response.setContentType("text/xml");
-		return result;
+		return retGuid;
 			
 	}
     
@@ -812,7 +811,7 @@
     private void query() throws InvalidToken, ServiceFailure, NotAuthorized, InvalidRequest, NotImplemented {
         
     	String query = null;
-		QueryType queryType = null;
+		String queryType = null;
 		try {
 			query = params.get("query")[0];
 		} catch (Exception e) {
@@ -820,7 +819,7 @@
 		}
 		try {
 			String qt = params.get("queryType")[0];
-			queryType = QueryType.valueOf(qt);
+			queryType = qt;
 		} catch (Exception e) {
 			logMetacat.warn("queryType not specified");
 		}
Index: src/edu/ucsb/nceas/metacat/MetacatHandler.java
===================================================================
--- src/edu/ucsb/nceas/metacat/MetacatHandler.java	(revision 6396)
+++ src/edu/ucsb/nceas/metacat/MetacatHandler.java	(revision 6397)
@@ -78,10 +78,8 @@
 import org.dataone.service.exceptions.BaseException;
 import org.dataone.service.exceptions.NotFound;
 import org.dataone.service.types.v1.Checksum;
-import org.dataone.service.types.v1.ChecksumAlgorithm;
 import org.dataone.service.types.v1.Identifier;
 import org.dataone.service.types.v1.NodeReference;
-import org.dataone.service.types.v1.ObjectFormat;
 import org.dataone.service.types.v1.ObjectFormatIdentifier;
 import org.dataone.service.types.v1.Subject;
 import org.dataone.service.types.v1.SystemMetadata;
@@ -3739,7 +3737,7 @@
       
       //create the checksum
       inputStream = this.read(localId);
-      ChecksumAlgorithm algorithm = ChecksumAlgorithm.convert("MD5");
+      String algorithm = "MD5";
       Checksum checksum = ChecksumUtil.checksum(inputStream, algorithm);
       sysMeta.setChecksum(checksum);
       
Index: src/edu/ucsb/nceas/metacat/util/MetacatPopulator.java
===================================================================
--- src/edu/ucsb/nceas/metacat/util/MetacatPopulator.java	(revision 6396)
+++ src/edu/ucsb/nceas/metacat/util/MetacatPopulator.java	(revision 6397)
@@ -50,7 +50,6 @@
 import org.dataone.service.types.v1.AccessPolicy;
 import org.dataone.service.types.v1.AccessRule;
 import org.dataone.service.types.v1.Checksum;
-import org.dataone.service.types.v1.ChecksumAlgorithm;
 import org.dataone.service.types.v1.Identifier;
 import org.dataone.service.types.v1.NodeReference;
 import org.dataone.service.types.v1.ObjectFormat;
@@ -210,7 +209,7 @@
 						dataDocSysMeta.setFmtid(format.getFmtid());
 	                    Checksum checksum = new Checksum();
 	                    dataDocIs = stringToStream(dataDocText);
-	                    ChecksumAlgorithm ca = ChecksumAlgorithm.convert("MD5");
+	                    String ca = "MD5";
 	                    checksum.setAlgorithm(ca);
 	                    checksum.setValue(checksum(dataDocIs));
 	                    dataDocSysMeta.setChecksum(checksum);
@@ -321,7 +320,7 @@
         //create the checksum
         ByteArrayInputStream bais = new ByteArrayInputStream(doc.doctext.getBytes(MetaCatServlet.DEFAULT_ENCODING));
         String checksumS = checksum(bais);
-        ChecksumAlgorithm ca = ChecksumAlgorithm.convert("MD5");
+        String ca = "MD5";
         Checksum checksum = new Checksum();
         checksum.setValue(checksumS);
         checksum.setAlgorithm(ca);
Index: src/edu/ucsb/nceas/metacat/dataone/MNodeService.java
===================================================================
--- src/edu/ucsb/nceas/metacat/dataone/MNodeService.java	(revision 6396)
+++ src/edu/ucsb/nceas/metacat/dataone/MNodeService.java	(revision 6397)
@@ -54,7 +54,6 @@
 import org.dataone.service.mn.tier3.v1.MNStorage;
 import org.dataone.service.mn.tier4.v1.MNReplication;
 import org.dataone.service.types.v1.Checksum;
-import org.dataone.service.types.v1.ChecksumAlgorithm;
 import org.dataone.service.types.v1.DescribeResponse;
 import org.dataone.service.types.v1.Event;
 import org.dataone.service.types.v1.Group;
@@ -64,7 +63,6 @@
 import org.dataone.service.types.v1.MonitorInfo;
 import org.dataone.service.types.v1.MonitorList;
 import org.dataone.service.types.v1.Node;
-import org.dataone.service.types.v1.NodeHealth;
 import org.dataone.service.types.v1.NodeReference;
 import org.dataone.service.types.v1.NodeState;
 import org.dataone.service.types.v1.NodeType;
@@ -76,7 +74,6 @@
 import org.dataone.service.types.v1.Service;
 import org.dataone.service.types.v1.Services;
 import org.dataone.service.types.v1.Session;
-import org.dataone.service.types.v1.Status;
 import org.dataone.service.types.v1.Subject;
 import org.dataone.service.types.v1.Synchronization;
 import org.dataone.service.types.v1.SystemMetadata;
@@ -555,7 +552,7 @@
     
     try {
       checksum = 
-    	  ChecksumUtil.checksum(inputStream, ChecksumAlgorithm.convert(algorithm));
+    	  ChecksumUtil.checksum(inputStream, algorithm);
     
     } catch (NoSuchAlgorithmException e) {
       throw new ServiceFailure("1410", "The checksum for the object specified by " + 
@@ -733,9 +730,8 @@
 	  node.setDescription(nodeDesc);
 	  
 	  // set the node's health information
-	  NodeHealth health = new NodeHealth();
 	  NodeState state = NodeState.UP;
-	  health.setState(state);
+	  node.setState(state);
 	  // set the ping response to the current value
 	  Ping canPing = new Ping();
 	  canPing.setSuccess(false);
@@ -748,13 +744,7 @@
 	    e.printStackTrace();
 	    
     }
-	  health.setPing(canPing);
-	  // TODO: getStatus() should be consulted here when it's implemented
-	  Status nodeStatus = new Status();
-	  nodeStatus.setSuccess(true); 
-	  nodeStatus.setDateChecked(new Date());
-	  health.setStatus(nodeStatus);
-	  node.setHealth(health);
+	  node.setPing(canPing);
 	  
 	  NodeReference identifier = new NodeReference();
 	  identifier.setValue(nodeId);
Index: src/edu/ucsb/nceas/metacat/dataone/CNodeService.java
===================================================================
--- src/edu/ucsb/nceas/metacat/dataone/CNodeService.java	(revision 6396)
+++ src/edu/ucsb/nceas/metacat/dataone/CNodeService.java	(revision 6397)
@@ -49,7 +49,6 @@
 import org.dataone.service.types.v1.ObjectList;
 import org.dataone.service.types.v1.ObjectLocationList;
 import org.dataone.service.types.v1.Permission;
-import org.dataone.service.types.v1.QueryType;
 import org.dataone.service.types.v1.Replica;
 import org.dataone.service.types.v1.ReplicationPolicy;
 import org.dataone.service.types.v1.ReplicationStatus;
@@ -351,7 +350,7 @@
 	 * @throws NotImplemented
 	 */
 	@Override
-	public ObjectList search(Session session, QueryType queryType, String query)
+	public ObjectList search(Session session, String queryType, String query)
 	  throws InvalidToken, ServiceFailure, NotAuthorized, InvalidRequest,
 	  NotImplemented {
 
@@ -500,7 +499,7 @@
 	 * @throws InvalidSystemMetadata
 	 */
 	@Override
-	public boolean registerSystemMetadata(Session session, Identifier guid,
+	public Identifier registerSystemMetadata(Session session, Identifier guid,
 	  SystemMetadata sysmeta) 
 	  throws NotImplemented, NotAuthorized, ServiceFailure, InvalidRequest, 
 	  InvalidSystemMetadata {
@@ -543,7 +542,7 @@
 	      
 	      logMetacat.debug("Returning from registerSystemMetadata");
 	      EventLog.getInstance().log(null, session.getSubject().getValue(), guid.getValue(), "registerSystemMetadata");
-	      return true;
+	      return guid;
 	}
 
 	/**
Index: src/edu/ucsb/nceas/metacat/IdentifierManager.java
===================================================================
--- src/edu/ucsb/nceas/metacat/IdentifierManager.java	(revision 6396)
+++ src/edu/ucsb/nceas/metacat/IdentifierManager.java	(revision 6397)
@@ -41,7 +41,6 @@
 import org.dataone.service.types.v1.AccessPolicy;
 import org.dataone.service.types.v1.AccessRule;
 import org.dataone.service.types.v1.Checksum;
-import org.dataone.service.types.v1.ChecksumAlgorithm;
 import org.dataone.service.types.v1.Identifier;
 import org.dataone.service.types.v1.NodeReference;
 import org.dataone.service.types.v1.ObjectFormat;
@@ -121,7 +120,7 @@
         sysMeta.setRightsHolder(rightsHolderSubject);
         Checksum checksumObject = new Checksum();
         checksumObject.setValue(checksum);
-        checksumObject.setAlgorithm(ChecksumAlgorithm.convert(checksumAlgorithm));
+        checksumObject.setAlgorithm(checksumAlgorithm);
         sysMeta.setChecksum(checksumObject);
         NodeReference omn = new NodeReference();
         omn.setValue(originMemberNode);
@@ -284,7 +283,7 @@
                 sysMeta.setRightsHolder(rightsHolderSubject);
                 Checksum checksumObject = new Checksum();
                 checksumObject.setValue(checksum);
-                checksumObject.setAlgorithm(ChecksumAlgorithm.convert(checksumAlgorithm));
+                checksumObject.setAlgorithm(checksumAlgorithm);
                 sysMeta.setChecksum(checksumObject);
                 NodeReference omn = new NodeReference();
                 omn.setValue(originMemberNode);
@@ -1140,7 +1139,7 @@
 				sm.getDateUploaded() == null ? null: sm.getDateUploaded().getTime(),
 				sm.getRightsHolder() == null ? null: sm.getRightsHolder().getValue(), 
 				sm.getChecksum() == null ? null: sm.getChecksum().getValue(), 
-				sm.getChecksum() == null ? null: sm.getChecksum().getAlgorithm().xmlValue(), 
+				sm.getChecksum() == null ? null: sm.getChecksum().getAlgorithm(), 
 				sm.getOriginMemberNode() == null ? null: sm.getOriginMemberNode().getValue(),
 				sm.getAuthoritativeMemberNode() == null ? null: sm.getAuthoritativeMemberNode().getValue(), 
 				sm.getDateSysMetadataModified() == null ? null: sm.getDateSysMetadataModified().getTime(),
@@ -1468,7 +1467,7 @@
                 cs.setValue(checksum);
                 try {
                 	//cs.setAlgorithm(ChecksumAlgorithm.valueOf(checksumAlgorithm));
-                    cs.setAlgorithm(ChecksumAlgorithm.convert(checksumAlgorithm));
+                    cs.setAlgorithm(checksumAlgorithm);
                 } catch (Exception e) {
 					logMetacat.warn("could not parse checksum algorithm", e);
 				}
