Index: test/edu/ucsb/nceas/metacat/dataone/CrudServiceTest.java
===================================================================
--- test/edu/ucsb/nceas/metacat/dataone/CrudServiceTest.java	(revision 5916)
+++ test/edu/ucsb/nceas/metacat/dataone/CrudServiceTest.java	(revision 5917)
@@ -93,21 +93,21 @@
 	public static Test suite() 
 	{
 		TestSuite suite = new TestSuite();
-		suite.addTest(new CrudServiceTest("initialize"));
-		suite.addTest(new CrudServiceTest("testSingletonAccessor"));
-		suite.addTest(new CrudServiceTest("testCreateAndGet"));
-		suite.addTest(new CrudServiceTest("testGetSystemMetadata"));
-		suite.addTest(new CrudServiceTest("testUpdate"));
+//		suite.addTest(new CrudServiceTest("initialize"));
+//		suite.addTest(new CrudServiceTest("testSingletonAccessor"));
+//		suite.addTest(new CrudServiceTest("testCreateAndGet"));
+//		suite.addTest(new CrudServiceTest("testGetSystemMetadata"));
+//		suite.addTest(new CrudServiceTest("testUpdate"));
 		suite.addTest(new CrudServiceTest("testListObjects"));
-		suite.addTest(new CrudServiceTest("testAccessControl"));
-		suite.addTest(new CrudServiceTest("testGetLogRecords"));
-		suite.addTest(new CrudServiceTest("testChecksumError"));
-		suite.addTest(new CrudServiceTest("testPublicAccess"));
-		suite.addTest(new CrudServiceTest("testFailedCreate"));
-		suite.addTest(new CrudServiceTest("testChecksum"));
-		suite.addTest(new CrudServiceTest("testDescribe"));
-		suite.addTest(new CrudServiceTest("testDelete"));
-		suite.addTest(new CrudServiceTest("testSemiColonsInIdentifiers"));
+//		suite.addTest(new CrudServiceTest("testAccessControl"));
+//		suite.addTest(new CrudServiceTest("testGetLogRecords"));
+//		suite.addTest(new CrudServiceTest("testChecksumError"));
+//		suite.addTest(new CrudServiceTest("testPublicAccess"));
+//		suite.addTest(new CrudServiceTest("testFailedCreate"));
+//		suite.addTest(new CrudServiceTest("testChecksum"));
+//		suite.addTest(new CrudServiceTest("testDescribe"));
+//		suite.addTest(new CrudServiceTest("testDelete"));
+//		suite.addTest(new CrudServiceTest("testSemiColonsInIdentifiers"));
 		//suite.addTest(new CrudServiceTest("testGenerateMissingSystemMetadata"));
 		return suite;
 	}
@@ -608,8 +608,9 @@
             ObjectList list8 = cs.listObjects(token, d1, d6, null, false, 2, 2);
             assertTrue(list8.getCount() == 2);
             assertTrue(list8.getStart() == 2);
-            assertTrue(list8.getTotal() == 4);
+            assertTrue(list8.getTotal() == 5);
             
+            
 	    }
 	    catch(Exception e)
 	    {
Index: src/xmltables-oracle.sql
===================================================================
--- src/xmltables-oracle.sql	(revision 5916)
+++ src/xmltables-oracle.sql	(revision 5917)
@@ -410,7 +410,9 @@
    origin_member_node VARCHAR2(250), --the member node where the document was first uploaded
    authoritive_member_node VARCHAR2(250), --the member node that currently controls the document
    date_modified DATE, -- the last date/time that the file was changed
-   submitter VARCHAR2(256) -- the user who originally submitted the doc
+   submitter VARCHAR2(256), -- the user who originally submitted the doc
+   object_format VARCHAR2(256), --the format of the object
+   size VARCHAR2(256) --the size of the object
 )
 
 /*
Index: src/upgrade-db-to-1.10.0-postgres.sql
===================================================================
--- src/upgrade-db-to-1.10.0-postgres.sql	(revision 5916)
+++ src/upgrade-db-to-1.10.0-postgres.sql	(revision 5917)
@@ -12,6 +12,8 @@
    authoritive_member_node VARCHAR(250), --the member node that currently controls the document
    date_modified TIMESTAMP, -- the last date/time that the file was changed
    submitter VARCHAR(256), -- the user who originally submitted the doc
+   object_format VARCHAR(256), --the format of the object
+   size VARCHAR(256), --the size of the object
    CONSTRAINT systemMetadata_pk PRIMARY KEY (guid)
 );
 
Index: src/xmltables-postgres.sql
===================================================================
--- src/xmltables-postgres.sql	(revision 5916)
+++ src/xmltables-postgres.sql	(revision 5917)
@@ -300,6 +300,8 @@
    authoritive_member_node VARCHAR(250), --the member node that currently controls the document
    date_modified TIMESTAMP, -- the last date/time that the file was changed
    submitter VARCHAR(256), -- the user who originally submitted the doc
+   object_format VARCHAR(256), --the format of the object
+   size VARCHAR(256), --the size of the object
    CONSTRAINT systemMetadata_pk PRIMARY KEY (guid)
 );
 
Index: src/upgrade-db-to-1.10.0-oracle.sql
===================================================================
--- src/upgrade-db-to-1.10.0-oracle.sql	(revision 5916)
+++ src/upgrade-db-to-1.10.0-oracle.sql	(revision 5917)
@@ -12,7 +12,9 @@
    origin_member_node VARCHAR2(250), --the member node where the document was first uploaded
    authoritive_member_node VARCHAR2(250), --the member node that currently controls the document
    date_modified DATE, -- the last date/time that the file was changed
-   submitter VARCHAR2(256) -- the user who originally submitted the doc
+   submitter VARCHAR2(256), -- the user who originally submitted the doc
+   object_format VARCHAR2(256), --the format of the object
+   size VARCHAR2(256) --the size of the object
 )
 
 CREATE TABLE identifier (
Index: src/edu/ucsb/nceas/metacat/IdentifierManager.java
===================================================================
--- src/edu/ucsb/nceas/metacat/IdentifierManager.java	(revision 5916)
+++ src/edu/ucsb/nceas/metacat/IdentifierManager.java	(revision 5917)
@@ -119,7 +119,7 @@
         }
         Hashtable<String, String> h = new Hashtable<String, String>();
         String sql = "select guid, date_uploaded, rights_holder, checksum, checksum_algorithm, " +
-          "origin_member_node, authoritative_member_node, date_modified, submitter " +
+          "origin_member_node, authoritative_member_node, date_modified, submitter, object_format " +
           "from systemmetadata where docid = ?";
         DBConnection dbConn = null;
         int serialNumber = -1;
@@ -144,6 +144,8 @@
                 String authoritativeMemberNode = rs.getString(7);
                 Timestamp dateModified = rs.getTimestamp(8);
                 String submitter = rs.getString(9);
+                String objectFormat = rs.getString(10);
+                long size = new Long(rs.getString(11)).longValue();
                 
                 h.put("guid", guid);
                 h.put("date_uploaded", new Long(dateUploaded.getTime()).toString());
@@ -154,6 +156,8 @@
                 h.put("authoritative_member_node", authoritativeMemberNode);
                 h.put("date_modified", new Long(dateModified.getTime()).toString());
                 h.put("submitter", submitter);
+                h.put("object_format", objectFormat);
+                h.put("size", new Long(size).toString());
                 
                 stmt.close();
             } 
@@ -678,7 +682,8 @@
     
     public void insertAdditionalSystemMetadataFields(long dateUploaded, String rightsHolder,
             String checksum, String checksumAlgorithm, String originMemberNode,
-            String authoritativeMemberNode, long modifiedDate, String submitter, String guid)
+            String authoritativeMemberNode, long modifiedDate, String submitter, 
+            String guid, String objectFormat, long size)
     {
         DBConnection dbConn = null;
         int serialNumber = -1;
@@ -691,8 +696,9 @@
             // Execute the insert statement
             String query = "update " + TYPE_SYSTEM_METADATA + 
                 " set (date_uploaded, rights_holder, checksum, checksum_algorithm, " +
-                "origin_member_node, authoritive_member_node, date_modified, submitter) " +
-                "= (?, ?, ?, ?, ?, ?, ?, ?) where guid = ?";
+                "origin_member_node, authoritive_member_node, date_modified, " +
+                "submitter, object_format, size) " +
+                "= (?, ?, ?, ?, ?, ?, ?, ?, ?, ?) where guid = ?";
             PreparedStatement stmt = dbConn.prepareStatement(query);
             
             //data values
@@ -704,8 +710,10 @@
             stmt.setString(6, authoritativeMemberNode);
             stmt.setTimestamp(7, new java.sql.Timestamp(modifiedDate));
             stmt.setString(8, submitter);
+            stmt.setString(9, objectFormat);
+            stmt.setString(10, new Long(size).toString());
             //where clause
-            stmt.setString(9, guid);
+            stmt.setString(11, guid);
             System.out.println("stmt: " + stmt.toString());
             //execute
             int rows = stmt.executeUpdate();
@@ -740,7 +748,9 @@
                 sm.getAuthoritativeMemberNode().getValue(), 
                 sm.getDateSysMetadataModified().getTime(),
                 sm.getSubmitter().getValue(), 
-                sm.getIdentifier().getValue());
+                sm.getIdentifier().getValue(),
+                sm.getObjectFormat().toString(),
+                sm.getSize());
     }
     
     /**
@@ -815,9 +825,7 @@
         {
             String sql = "select guid, date_uploaded, rights_holder, checksum, " +
                 "checksum_algorithm, origin_member_node, authoritive_member_node, " +
-                "date_modified, submitter, xml_documents.doctype from systemmetadata, " +
-                "xml_documents where xml_documents.docid in " +
-                "(select docid from identifier where guid = systemmetadata.guid)";
+                "date_modified, submitter, object_format, size from systemmetadata";
             
             boolean f1 = false;
             boolean f2 = false;
@@ -825,19 +833,33 @@
             
             if(startTime != null)
             {
-                sql += " and systemmetadata.date_modified > ?";
+                sql += " where systemmetadata.date_modified > ?";
                 f1 = true;
             }
             
             if(endTime != null)
             {
-                sql += " and systemmetadata.date_modified < ?";
+                if(!f1)
+                {
+                    sql += " where systemmetadata.date_modified < ?";
+                }
+                else
+                {
+                    sql += " and systemmetadata.date_modified < ?";
+                }
                 f2 = true;
             }
             
             if(objectFormat != null)
             {
-                sql += " and xml_documents.doctype = ?";
+                if(!f1 && !f2)
+                {
+                    sql += " where object_format = ?";
+                }
+                else 
+                {
+                    sql += " and object_format = ?";
+                }
                 f3 = true;
             }
             
@@ -844,7 +866,14 @@
             if(replicaStatus)
             {
                 String currentNodeId = PropertyService.getInstance().getProperty("dataone.memberNodeId");
-                sql += " and authoritive_member_node != '" + currentNodeId.trim() + "'";
+                if(!f1 && !f2 && !f3)
+                {
+                    sql += " where authoritive_member_node != '" + currentNodeId.trim() + "'";
+                }
+                else
+                {
+                    sql += " and authoritive_member_node != '" + currentNodeId.trim() + "'";
+                }
             }
             
             DBConnection dbConn = DBConnectionPool.getDBConnection("IdentifierManager.createMapping");
@@ -888,10 +917,18 @@
             //System.out.println("LISTOBJECTS QUERY: " + stmt.toString());
             
             ResultSet rs = stmt.executeQuery();
-            for(int i=0; i<start - 1; i++)
+            for(int i=0; i<start; i++)
             {
-                rs.next();
+                if(rs.next())
+                {
+                    total++;
+                }
+                else
+                {
+                    break;
+                }
             }
+            
             int countIndex = 0;
                         
             while(rs.next()) 
@@ -912,6 +949,12 @@
                 Timestamp dateModified = rs.getTimestamp(8);
                 //String submitter = rs.getString(9);
                 String format = rs.getString(10);
+                String sz = rs.getString(11);
+                long size = 0;
+                if(sz != null && !sz.trim().equals(""))
+                {
+                    size = new Long(rs.getString(11)).longValue();
+                }
                 
                 ObjectInfo oi = new ObjectInfo();
                 
@@ -933,8 +976,10 @@
                 }
                 else
                 { //if there is no object format, just default to text/plain
-                    oi.setObjectFormat(ObjectFormat.TEXT_PLAIN);
+                    oi.setObjectFormat(ObjectFormat.OCTET_STREAM);
                 }
+                                
+                oi.setSize(size);
                 
                 ol.addObjectInfo(oi);
                 countIndex++;
@@ -951,7 +996,6 @@
            System.out.println("Error querying system metadata: " + e.getMessage());
         }
         
-        System.out.println("listObjects total: " + total);
         ol.setStart(start);
         ol.setCount(count);
         ol.setTotal(total);
Index: src/edu/ucsb/nceas/metacat/replication/ReplicationHandler.java
===================================================================
--- src/edu/ucsb/nceas/metacat/replication/ReplicationHandler.java	(revision 5916)
+++ src/edu/ucsb/nceas/metacat/replication/ReplicationHandler.java	(revision 5917)
@@ -438,7 +438,9 @@
                     docinfoHash.get("authoritative_member_node"), 
                     dateModifiedLong.longValue(),
                     docinfoHash.get("submitter"),
-                    docinfoHash.get("guid"));
+                    docinfoHash.get("guid"),
+                    docinfoHash.get("objectFormat"),
+                    new Long(docinfoHash.get("size")).longValue());
         }
         else
         {
