Index: trunk/psLib/test/astronomy/Makefile.am
===================================================================
--- trunk/psLib/test/astronomy/Makefile.am	(revision 3367)
+++ trunk/psLib/test/astronomy/Makefile.am	(revision 3381)
@@ -74,4 +74,6 @@
 	verified 
 
+CLEANFILES = $(TESTS) $(check_DATA)
+
 psTime.config: $(top_srcdir)/etc/pslib/psTime.config.template
 	sed 's|PREFIX|$(top_srcdir)|' $? > $@
Index: trunk/psLib/test/astronomy/data/test.config
===================================================================
--- trunk/psLib/test/astronomy/data/test.config	(revision 3367)
+++ trunk/psLib/test/astronomy/data/test.config	(revision 3381)
@@ -7,6 +7,6 @@
 #  author  Ross Harman, MHPCC
 #
-#  version $Revision: 1.1 $  $Name: not supported by cvs2svn $
-#  date  $Date: 2005-02-17 01:58:43 $
+#  version $Revision: 1.2 $  $Name: not supported by cvs2svn $
+#  date  $Date: 2005-03-07 20:58:50 $
 #
 #  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -74,13 +74,12 @@
 ########## Test 10  ##########
 # The lines below should create a folder node with children that are strings. They should be read by the parser.
-comment *
-comment STR This
-comment STR     is
-comment STR         an
-comment STR             ugly
-comment STR                 comment
-comment STR                         but
-comment STR                             still
-comment STR                                 valid
+comment *STR This
+comment *STR     is
+comment *STR         an
+comment *STR             ugly
+comment *STR                 comment
+comment *STR                         but
+comment *STR                             still
+comment *STR                                 valid
 #
 #
Index: trunk/psLib/test/astronomy/tst_psMetadataIO.c
===================================================================
--- trunk/psLib/test/astronomy/tst_psMetadataIO.c	(revision 3367)
+++ trunk/psLib/test/astronomy/tst_psMetadataIO.c	(revision 3381)
@@ -1,22 +1,23 @@
 /** @file  tst_psMetadataIO.c
-*
-*  @brief Test driver for psMetadataIO functions
-*
-*  This test driver contains the following tests for psMetadata:
-*    Test A - Read config file with overwrite set true
-*    Test B - Read config file with overwrite set false
-*    Test C - Read config file without auto-allocation of metadata
-*    Test D - Attempt to use null fileName argument
-*    Test E - Attempt to open nonexistant file
-*    Test F - Free psMetadata
-*
-*  @author  Ross Harman, MHPCC
-*
-*  @version $Revision: 1.10 $  $Name: not supported by cvs2svn $
-*  @date  $Date: 2005-02-28 23:34:10 $
-*
-*  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
-*
-*/
+ *
+ *  @brief Test driver for psMetadataIO functions
+ *
+ *  This test driver contains the following tests for psMetadata:
+ *    Test A - Read config file with overwrite set true
+ *    Test B - Read config file with overwrite set false
+ *    Test C - Read config file without auto-allocation of metadata
+ *    Test D - Attempt to use null fileName argument
+ *    Test E - Attempt to open nonexistant file
+ *    Test F - Free psMetadata
+ *
+ *  @author  Ross Harman, MHPCC
+ *  @author  Robert DeSonia, MHPCC
+ *
+ *  @version $Revision: 1.11 $  $Name: not supported by cvs2svn $
+ *  @date  $Date: 2005-03-07 20:58:50 $
+ *
+ *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
+ *
+ */
 
 #include <string.h>
@@ -69,5 +70,5 @@
 
     switch (metadataItem->type) {
-    case PS_META_LIST:
+    case PS_META_MULTI:
         printf("Key Value: %17c", ' ');
         break;
@@ -92,5 +93,5 @@
     printf("Key Comment: %s\n", metadataItem->comment);
 
-    if(metadataItem->data.V && metadataItem->type==PS_META_LIST) {
+    if(metadataItem->data.V && metadataItem->type==PS_META_MULTI) {
         printMetadataList(metadataItem->data.V, "    ");
     }
Index: trunk/psLib/test/astronomy/tst_psMetadata_01.c
===================================================================
--- trunk/psLib/test/astronomy/tst_psMetadata_01.c	(revision 3367)
+++ trunk/psLib/test/astronomy/tst_psMetadata_01.c	(revision 3381)
@@ -18,6 +18,6 @@
 *  @author  Ross Harman, MHPCC
 *
-*  @version $Revision: 1.21 $  $Name: not supported by cvs2svn $
-*  @date  $Date: 2005-02-28 23:34:10 $
+*  @version $Revision: 1.22 $  $Name: not supported by cvs2svn $
+*  @date  $Date: 2005-03-07 20:58:50 $
 *
 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -75,5 +75,5 @@
 
     switch (metadataItem->type) {
-    case PS_META_LIST:
+    case PS_META_MULTI:
         printf("Key Value: %17c", ' ');
         break;
@@ -98,5 +98,5 @@
     printf("Key Comment: %s\n", metadataItem->comment);
 
-    if(metadataItem->data.V && metadataItem->type==PS_META_LIST) {
+    if(metadataItem->data.V && metadataItem->type==PS_META_MULTI) {
         printMetadataList(metadataItem->data.V, "    ");
     }
Index: trunk/psLib/test/astronomy/tst_psMetadata_02.c
===================================================================
--- trunk/psLib/test/astronomy/tst_psMetadata_02.c	(revision 3367)
+++ trunk/psLib/test/astronomy/tst_psMetadata_02.c	(revision 3381)
@@ -1,23 +1,24 @@
 /** @file  tst_psMetadata_02.c
-*
-*  @brief Test driver for psMetadata functions
-*
-*  This test driver contains the following tests for psMetadata:
-*     Test A - Allocate metadata items
-*     Test B - Attempt to create metadata item with null name
-*     Test C - Attempt to create metadata item with invalid type
-*     Test D - Allocate metadata
-*     Test E - Attempt to add metadata item to null metadata
-*     Test F - Attempt to add null metadata item to metadata
-*     Test G - Free psMetadata
-*
-*  @author  Ross Harman, MHPCC
-*
-*  @version $Revision: 1.12 $  $Name: not supported by cvs2svn $
-*  @date  $Date: 2005-02-28 23:34:10 $
-*
-*  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
-*
-*/
+ *
+ *  @brief Test driver for psMetadata functions
+ *
+ *  This test driver contains the following tests for psMetadata:
+ *     Test A - Allocate metadata items
+ *     Test B - Attempt to create metadata item with null name
+ *     Test C - Attempt to create metadata item with invalid type
+ *     Test D - Allocate metadata
+ *     Test E - Attempt to add metadata item to null metadata
+ *     Test F - Attempt to add null metadata item to metadata
+ *     Test G - Free psMetadata
+ *
+ *  @author  Ross Harman, MHPCC
+ *  @author  Robert DeSonia, MHPCC
+ *
+ *  @version $Revision: 1.13 $  $Name: not supported by cvs2svn $
+ *  @date  $Date: 2005-03-07 20:58:50 $
+ *
+ *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
+ *
+ */
 
 #include <string.h>
@@ -31,5 +32,5 @@
 
     switch (metadataItem->type) {
-    case PS_META_LIST:
+    case PS_META_MULTI:
         printf("Key Value: %17c", ' ');
         break;
@@ -110,5 +111,5 @@
     printNegativeTestHeader(stdout,"psMetadata", "Test E - Attempt to add metadata item to null metadata",
                             "Null metadata collection not allowed", 0);
-    psMetadataAddItem(NULL, item1, PS_LIST_HEAD);
+    psMetadataAddItem(NULL, item1, PS_LIST_HEAD, PS_META_DEFAULT);
     printFooter(stdout, "psMetadata", "Test E - Attempt to add metadata item to null metadata", true);
 
@@ -117,5 +118,5 @@
     printNegativeTestHeader(stdout,"psMetadata", "Test F - Attempt to add null metadata item to metadata",
                             "Null metadata item not allowed", 0);
-    psMetadataAddItem(metadata, NULL, PS_LIST_HEAD);
+    psMetadataAddItem(metadata, NULL, PS_LIST_HEAD, PS_META_DEFAULT);
     printFooter(stdout, "psMetadata", "Test F - Attempt to add null metadata item to metadata", true);
 
Index: trunk/psLib/test/astronomy/tst_psMetadata_03.c
===================================================================
--- trunk/psLib/test/astronomy/tst_psMetadata_03.c	(revision 3367)
+++ trunk/psLib/test/astronomy/tst_psMetadata_03.c	(revision 3381)
@@ -18,6 +18,6 @@
 *  @author  Ross Harman, MHPCC
 *
-*  @version $Revision: 1.14 $  $Name: not supported by cvs2svn $
-*  @date  $Date: 2005-02-28 23:34:10 $
+*  @version $Revision: 1.15 $  $Name: not supported by cvs2svn $
+*  @date  $Date: 2005-03-07 20:58:50 $
 *
 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -35,5 +35,5 @@
 
     switch (metadataItem->type) {
-    case PS_META_LIST:
+    case PS_META_MULTI:
         printf("Key Value: %17c", ' ');
         break;
@@ -90,5 +90,5 @@
     // Test B - Remove items from metadata by name
     printPositiveTestHeader(stdout, "psMetadata", "Test B - Remove items from metadata by name");
-    if(!psMetadataAddItem(metadata, item1, PS_LIST_HEAD)) {
+    if(!psMetadataAddItem(metadata, item1, PS_LIST_HEAD, PS_META_DEFAULT)) {
         psError(PS_ERR_UNKNOWN, true,"psMetadataAddItem did not return true when adding by name.");
         return 10;
@@ -111,5 +111,5 @@
     // Test C - Remove items from metadata by index
     printPositiveTestHeader(stdout, "psMetadata", "Test C - Remove items from metadata by index");
-    if ( ! psMetadataAddItem(metadata, item3, PS_LIST_HEAD) ) {
+    if ( ! psMetadataAddItem(metadata, item3, PS_LIST_HEAD, PS_META_DEFAULT) ) {
         psError(PS_ERR_UNKNOWN, true,"psMetadataAddItem did not return true when adding by index.");
         return 14;
@@ -166,5 +166,5 @@
     mdTable = errMetadata->table;
     errMetadata->table = NULL;
-    if ( psMetadataAddItem(errMetadata, item3, PS_LIST_HEAD) ) {
+    if ( psMetadataAddItem(errMetadata, item3, PS_LIST_HEAD, PS_META_DEFAULT) ) {
         psError(PS_ERR_UNKNOWN, true,"psMetadataAddItem did not return false w/ invalid metadata struct w/o hash table.");
         return 21;
@@ -182,5 +182,5 @@
     mdList = errMetadata->list;
     errMetadata->list = NULL;
-    if ( psMetadataAddItem(errMetadata, item3, PS_LIST_HEAD) ) {
+    if ( psMetadataAddItem(errMetadata, item3, PS_LIST_HEAD, PS_META_DEFAULT) ) {
         psError(PS_ERR_UNKNOWN, true,"psMetadataAddItem did not return false w/ invalid metadata struct w/o link list.");
         return 22;
@@ -198,5 +198,5 @@
     errName = errItem->name;
     errItem->name = NULL;
-    if ( psMetadataAddItem(errMetadata, errItem, PS_LIST_HEAD) ) {
+    if ( psMetadataAddItem(errMetadata, errItem, PS_LIST_HEAD, PS_META_DEFAULT) ) {
         psError(PS_ERR_UNKNOWN, true,"psMetadataAddItem did not return false with item with null name.");
         return 23;
Index: trunk/psLib/test/astronomy/tst_psMetadata_04.c
===================================================================
--- trunk/psLib/test/astronomy/tst_psMetadata_04.c	(revision 3367)
+++ trunk/psLib/test/astronomy/tst_psMetadata_04.c	(revision 3381)
@@ -23,6 +23,6 @@
 *  @author  Ross Harman, MHPCC
 *
-*  @version $Revision: 1.15 $  $Name: not supported by cvs2svn $
-*  @date  $Date: 2005-02-28 23:34:10 $
+*  @version $Revision: 1.16 $  $Name: not supported by cvs2svn $
+*  @date  $Date: 2005-03-07 20:58:50 $
 *
 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -40,5 +40,5 @@
 
     switch (metadataItem->type) {
-    case PS_META_LIST:
+    case PS_META_MULTI:
         printf("Key Value: %17c", ' ');
         break;
@@ -95,10 +95,10 @@
     printMetadataItem(item4);
     printMetadataItem(item5);
-    psMetadataAddItem(metadata, item1, PS_LIST_HEAD);
-    psMetadataAddItem(metadata, item2, PS_LIST_HEAD);
-    psMetadataAddItem(metadata, item3, PS_LIST_HEAD);
-    psMetadataAddItem(metadata, item4, PS_LIST_HEAD);
-    psMetadataAddItem(metadata, item5, PS_LIST_HEAD);
-    psMetadataAddItem(metadata, item6, PS_LIST_HEAD);
+    psMetadataAddItem(metadata, item1, PS_LIST_HEAD, PS_META_DEFAULT);
+    psMetadataAddItem(metadata, item2, PS_LIST_HEAD, PS_META_DEFAULT);
+    psMetadataAddItem(metadata, item3, PS_LIST_HEAD, PS_META_DEFAULT);
+    psMetadataAddItem(metadata, item4, PS_LIST_HEAD, PS_META_DEFAULT);
+    psMetadataAddItem(metadata, item5, PS_LIST_HEAD, PS_META_DEFAULT);
+    psMetadataAddItem(metadata, item6, PS_LIST_HEAD, PS_META_DEFAULT);
     psFree(vec);
     printFooter(stdout, "psMetadata", "Test A - Allocate metadata items", true);
Index: trunk/psLib/test/astronomy/tst_psMetadata_05.c
===================================================================
--- trunk/psLib/test/astronomy/tst_psMetadata_05.c	(revision 3367)
+++ trunk/psLib/test/astronomy/tst_psMetadata_05.c	(revision 3381)
@@ -22,6 +22,6 @@
 *  @author  Ross Harman, MHPCC
 *
-*  @version $Revision: 1.20 $  $Name: not supported by cvs2svn $
-*  @date  $Date: 2005-02-28 23:34:10 $
+*  @version $Revision: 1.21 $  $Name: not supported by cvs2svn $
+*  @date  $Date: 2005-03-07 20:58:50 $
 *
 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -39,5 +39,5 @@
 
     switch (metadataItem->type) {
-    case PS_META_LIST:
+    case PS_META_MULTI:
         printf("Key Value: %17c", ' ');
         break;
@@ -92,8 +92,8 @@
     printMetadataItem(item3);
     printMetadataItem(item4);
-    psMetadataAddItem(metadata, item1, PS_LIST_HEAD);
-    psMetadataAddItem(metadata, item2, PS_LIST_HEAD);
-    psMetadataAddItem(metadata, item3, PS_LIST_HEAD);
-    psMetadataAddItem(metadata, item4, PS_LIST_HEAD);
+    psMetadataAddItem(metadata, item1, PS_LIST_HEAD, PS_META_DEFAULT);
+    psMetadataAddItem(metadata, item2, PS_LIST_HEAD, PS_META_DEFAULT);
+    psMetadataAddItem(metadata, item3, PS_LIST_HEAD, PS_META_DEFAULT);
+    psMetadataAddItem(metadata, item4, PS_LIST_HEAD, PS_META_DEFAULT);
     printFooter(stdout, "psMetadata", "Test A - Allocate metadata items", true);
 
Index: trunk/psLib/test/astronomy/tst_psMetadata_06.c
===================================================================
--- trunk/psLib/test/astronomy/tst_psMetadata_06.c	(revision 3367)
+++ trunk/psLib/test/astronomy/tst_psMetadata_06.c	(revision 3381)
@@ -13,6 +13,6 @@
 *  @author  Ross Harman, MHPCC
 *
-*  @version $Revision: 1.10 $  $Name: not supported by cvs2svn $
-*  @date  $Date: 2005-02-28 23:34:10 $
+*  @version $Revision: 1.11 $  $Name: not supported by cvs2svn $
+*  @date  $Date: 2005-03-07 20:58:50 $
 *
 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -30,6 +30,9 @@
 
     switch (metadataItem->type) {
+    case PS_META_MULTI:
+        printf("Key Value: %17c", ' ');
+        break;
     case PS_META_LIST:
-        printf("Key Value: %17c", ' ');
+        printf("Key Value: %15s  ", "psList");
         break;
     case PS_META_BOOL:
@@ -71,5 +74,5 @@
     item1c = psMetadataItemAlloc("myItem1", PS_META_S32, "I am a signed integer", 222);
     item2a = psMetadataItemAlloc("myItem2", PS_META_S32, "I am a signed integer", 333);
-    item2b = psMetadataItemAlloc("myItem2", PS_META_LIST, "I am a folder node", NULL);
+    item2b = psMetadataItemAlloc("myItem2", PS_META_LIST, "I am a list", NULL);
     metadata = psMetadataAlloc();
     printMetadataItem(item1a);
@@ -82,37 +85,60 @@
 
     // Test B - Add leaf node on top of existing leaf node
-    printPositiveTestHeader(stdout, "psMetadata", "Test B - Add leaf node on top of existing leaf node");
-    if(!psMetadataAddItem(metadata, item1a, PS_LIST_HEAD)) {
+    printPositiveTestHeader(stdout, "psMetadata", "Test B - replace an item in the metadata");
+    if(!psMetadataAddItem(metadata, item1a, PS_LIST_HEAD, PS_META_DEFAULT)) {
         psError(PS_ERR_UNKNOWN, true,"psMetadataAddItem returned false for adding a node top.");
         return 20;
     }
-    if (!psMetadataAddItem(metadata, item1b, PS_LIST_HEAD)) {
+    psMetadataItem* tempItem = psMetadataLookup(metadata, item1a->name);
+    if (tempItem != item1a) {
+        psError(PS_ERR_UNKNOWN, true,"psMetadataAddItem didn't add the metadata entry.");
+        return 20;
+    }
+
+    if (!psMetadataAddItem(metadata, item1b, PS_LIST_HEAD, PS_META_REPLACE)) {
         psError(PS_ERR_UNKNOWN, true,"psMetadataAddItem returned false for adding a node top.");
         return 21;
     }
 
-    printFooter(stdout, "psMetadata", "Test B - Add leaf node on top of existing leaf node", true);
+    tempItem = psMetadataLookup(metadata, item1a->name);
+    if (tempItem != item1b) {
+        psError(PS_ERR_UNKNOWN, true,"psMetadataAddItem didn't replace the metadata entry.");
+        return 21;
+    }
+
+    printFooter(stdout, "psMetadata", "Test B - replace an item in the metadata", true);
 
 
     // Test C - Add leaf node to existing folder node
-    printPositiveTestHeader(stdout, "psMetadata", "Test C - Add leaf node to existing folder node");
-    if (!psMetadataAddItem(metadata, item1c, PS_LIST_HEAD)) {
+    printPositiveTestHeader(stdout, "psMetadata", "Test C - add duplicate-key metadata item");
+    if (!psMetadataAddItem(metadata, item1c, PS_LIST_HEAD, PS_META_DUPLICATE_OK)) {
         psError(PS_ERR_UNKNOWN, true,"psMetadataAddItem return false for adding a not to existing node.");
         return 22;
     }
-    printFooter(stdout, "psMetadata", "Test C - Add leaf node to existing folder node", true);
+
+    tempItem = psMetadataLookup(metadata, item1a->name);
+    if (tempItem == NULL || tempItem->type != PS_META_MULTI) {
+        psError(PS_ERR_UNKNOWN, true,"psMetadataAddItem didn't add additional metadata entry of same key.");
+        return 22;
+    }
+    printFooter(stdout, "psMetadata", "Test C - add duplicate-key metadata item", true);
 
 
     // Test D - Add folder node on top of existing leaf node
     printPositiveTestHeader(stdout, "psMetadata", "Test D - Add folder node on top of existing leaf node");
-    if (!psMetadataAddItem(metadata, item2a, PS_LIST_HEAD)) {
+    if (!psMetadataAddItem(metadata, item2a, PS_LIST_HEAD, PS_META_DEFAULT)) {
         psError(PS_ERR_UNKNOWN, true,"psMetadataAddItem returned false for adding a node to existing leaf node.");
         return 23;
     }
-    if (!psMetadataAddItem(metadata, item2b, PS_LIST_HEAD)) {
+    if (!psMetadataAddItem(metadata, item2b, PS_LIST_HEAD, PS_META_DUPLICATE_OK)) {
         psError(PS_ERR_UNKNOWN, true,"psMetadataAddItem returned false for adding a nod to existing leaf node.");
         return 24;
     }
     printFooter(stdout, "psMetadata", "Test D - Add folder node on top of existing leaf node", true);
+    tempItem = psMetadataLookup(metadata, item1a->name);
+    if (tempItem == NULL || tempItem->type != PS_META_MULTI) {
+        psError(PS_ERR_UNKNOWN, true,"psMetadataAddItem didn't add additional metadata entry of same key.");
+        return 24;
+    }
 
 
Index: trunk/psLib/test/astronomy/verified/tst_psMetadataIO.stderr
===================================================================
--- trunk/psLib/test/astronomy/verified/tst_psMetadataIO.stderr	(revision 3367)
+++ trunk/psLib/test/astronomy/verified/tst_psMetadataIO.stderr	(revision 3381)
@@ -1,40 +1,44 @@
 <DATE><TIME>|<HOST>|E|psMetadataParseConfig (FILE:LINENO)
-    Failed to parse the value '9876.54qqq32' of metadata item xPosition, type F64, on line 90 of test.config.
+    Failed to parse the value '9876.54qqq32' of metadata item xPosition, type F64, on line 89 of test.config.
 <DATE><TIME>|<HOST>|E|psMetadataParseConfig (FILE:LINENO)
-    Failed to read a metadata value on line 96 of test.config.
+    Failed to read a metadata value on line 95 of test.config.
 <DATE><TIME>|<HOST>|E|psMetadataParseConfig (FILE:LINENO)
-    Metadata type '99.999', found on line 102 of test.config, is not invalid.
+    Metadata type '99.999', found on line 101 of test.config, is not invalid.
 <DATE><TIME>|<HOST>|E|psMetadataParseConfig (FILE:LINENO)
-    More than one '*' character not allowed.  Found on line 108 of test.config.
+    More than one '*' character not allowed.  Found on line 107 of test.config.
 <DATE><TIME>|<HOST>|E|psMetadataParseConfig (FILE:LINENO)
-    More than one '@' character not allowed.  Found on line 114 of test.config.
+    More than one '@' character not allowed.  Found on line 113 of test.config.
 <DATE><TIME>|<HOST>|E|psMetadataParseConfig (FILE:LINENO)
-    More than one '~' character not allowed.  Found on line 120 of test.config.
+    More than one '~' character not allowed.  Found on line 119 of test.config.
 <DATE><TIME>|<HOST>|E|psMetadataParseConfig (FILE:LINENO)
-    Failed to parse the value '9876.54qqq32' of metadata item xPosition, type F64, on line 90 of test.config.
+    Failed to parse the value '9876.54qqq32' of metadata item xPosition, type F64, on line 89 of test.config.
 <DATE><TIME>|<HOST>|E|psMetadataParseConfig (FILE:LINENO)
-    Failed to read a metadata value on line 96 of test.config.
+    Failed to read a metadata value on line 95 of test.config.
 <DATE><TIME>|<HOST>|E|psMetadataParseConfig (FILE:LINENO)
-    Metadata type '99.999', found on line 102 of test.config, is not invalid.
+    Metadata type '99.999', found on line 101 of test.config, is not invalid.
 <DATE><TIME>|<HOST>|E|psMetadataParseConfig (FILE:LINENO)
-    More than one '*' character not allowed.  Found on line 108 of test.config.
+    More than one '*' character not allowed.  Found on line 107 of test.config.
 <DATE><TIME>|<HOST>|E|psMetadataParseConfig (FILE:LINENO)
-    More than one '@' character not allowed.  Found on line 114 of test.config.
+    More than one '@' character not allowed.  Found on line 113 of test.config.
 <DATE><TIME>|<HOST>|E|psMetadataParseConfig (FILE:LINENO)
-    More than one '~' character not allowed.  Found on line 120 of test.config.
+    More than one '~' character not allowed.  Found on line 119 of test.config.
+<DATE><TIME>|<HOST>|E|psMetadataAddItem (FILE:LINENO)
+    Duplicate metadata item name is not allowed.  Use a psMetadataFlags option to allow such action.
+<DATE><TIME>|<HOST>|E|psMetadataAddV (FILE:LINENO)
+    Failed to add metadata item to metadata collection list.
 <DATE><TIME>|<HOST>|E|psMetadataParseConfig (FILE:LINENO)
-    Duplicate Metadata item, speed, found on line 128 of test.config.  Overwrite not allowed.
+    Duplicate Metadata item, speed, found on line 127 of test.config.  Overwrite not allowed.
 <DATE><TIME>|<HOST>|E|psMetadataParseConfig (FILE:LINENO)
-    Failed to parse the value '9876.54qqq32' of metadata item xPosition, type F64, on line 90 of test.config.
+    Failed to parse the value '9876.54qqq32' of metadata item xPosition, type F64, on line 89 of test.config.
 <DATE><TIME>|<HOST>|E|psMetadataParseConfig (FILE:LINENO)
-    Failed to read a metadata value on line 96 of test.config.
+    Failed to read a metadata value on line 95 of test.config.
 <DATE><TIME>|<HOST>|E|psMetadataParseConfig (FILE:LINENO)
-    Metadata type '99.999', found on line 102 of test.config, is not invalid.
+    Metadata type '99.999', found on line 101 of test.config, is not invalid.
 <DATE><TIME>|<HOST>|E|psMetadataParseConfig (FILE:LINENO)
-    More than one '*' character not allowed.  Found on line 108 of test.config.
+    More than one '*' character not allowed.  Found on line 107 of test.config.
 <DATE><TIME>|<HOST>|E|psMetadataParseConfig (FILE:LINENO)
-    More than one '@' character not allowed.  Found on line 114 of test.config.
+    More than one '@' character not allowed.  Found on line 113 of test.config.
 <DATE><TIME>|<HOST>|E|psMetadataParseConfig (FILE:LINENO)
-    More than one '~' character not allowed.  Found on line 120 of test.config.
+    More than one '~' character not allowed.  Found on line 119 of test.config.
 <DATE><TIME>|<HOST>|E|psMetadataParseConfig (FILE:LINENO)
     Unallowable operation: fileName is NULL.
Index: trunk/psLib/test/astronomy/verified/tst_psMetadataIO.stdout
===================================================================
--- trunk/psLib/test/astronomy/verified/tst_psMetadataIO.stdout	(revision 3367)
+++ trunk/psLib/test/astronomy/verified/tst_psMetadataIO.stdout	(revision 3381)
@@ -26,5 +26,5 @@
 
 Contents of metadata table:
- Key Name:  comment  Key mdType: 4  Key Value:                  Key Comment: 
+ Key Name:  comment  Key mdType: 14  Key Value:                  Key Comment: 
     Key Name:  comment  Key mdType: 5  Key Value:            This  Key Comment: 
     Key Name:  comment  Key mdType: 5  Key Value:              is  Key Comment: 
@@ -73,5 +73,5 @@
 
 Contents of metadata table:
- Key Name:  comment  Key mdType: 4  Key Value:                  Key Comment: 
+ Key Name:  comment  Key mdType: 14  Key Value:                  Key Comment: 
     Key Name:  comment  Key mdType: 5  Key Value:            This  Key Comment: 
     Key Name:  comment  Key mdType: 5  Key Value:              is  Key Comment: 
@@ -120,5 +120,5 @@
 
 Contents of metadata table:
- Key Name:  comment  Key mdType: 4  Key Value:                  Key Comment: 
+ Key Name:  comment  Key mdType: 14  Key Value:                  Key Comment: 
     Key Name:  comment  Key mdType: 5  Key Value:            This  Key Comment: 
     Key Name:  comment  Key mdType: 5  Key Value:              is  Key Comment: 
Index: trunk/psLib/test/astronomy/verified/tst_psMetadata_01.stderr
===================================================================
--- trunk/psLib/test/astronomy/verified/tst_psMetadata_01.stderr	(revision 3367)
+++ trunk/psLib/test/astronomy/verified/tst_psMetadata_01.stderr	(revision 3381)
@@ -1,6 +1,2 @@
-<DATE><TIME>|<HOST>|E|psListRemoveData (FILE:LINENO)
-    Specified data item is not found in the psList.
-<DATE><TIME>|<HOST>|E|psMetadataRemove (FILE:LINENO)
-    Failed to remove metadata item, HISTORY, from metadata list.
 <DATE><TIME>|<HOST>|E|psMetadataReadHeader (FILE:LINENO)
     Unallowable operation: fileName is NULL.
Index: trunk/psLib/test/astronomy/verified/tst_psMetadata_01.stdout
===================================================================
--- trunk/psLib/test/astronomy/verified/tst_psMetadata_01.stdout	(revision 3367)
+++ trunk/psLib/test/astronomy/verified/tst_psMetadata_01.stdout	(revision 3381)
@@ -44,9 +44,9 @@
  Key Name:   PCOUNT  Key mdType: 0  Key Value:               0  Key Comment: required keyword; must = 0
  Key Name: XTENSION  Key mdType: 5  Key Value:      'IMAGE   '  Key Comment: IMAGE extension
- Key Name:   BITPIX  Key mdType: 4  Key Value:                  Key Comment: 
+ Key Name:   BITPIX  Key mdType: 14  Key Value:                  Key Comment: 
     Key Name:   BITPIX  Key mdType: 0  Key Value:             -64  Key Comment: number of bits per data pixel
     Key Name:   BITPIX  Key mdType: 0  Key Value:             -64  Key Comment: number of bits per data pixel
  Key Name:   GCOUNT  Key mdType: 0  Key Value:               1  Key Comment: required keyword; must = 1
- Key Name:  HISTORY  Key mdType: 4  Key Value:                  Key Comment: 
+ Key Name:  HISTORY  Key mdType: 14  Key Value:                  Key Comment: 
     Key Name:  HISTORY  Key mdType: 5  Key Value:                  Key Comment: File modified by user 'harman' with fv  on 2004-08-04T<DATE>
     Key Name:  HISTORY  Key mdType: 5  Key Value:                  Key Comment: File modified by user 'harman' with fv  on 2004-08-04T<DATE>
@@ -81,5 +81,5 @@
  Key Name:   GCOUNT  Key mdType: 0  Key Value:               1  Key Comment: required keyword; must = 1
  Key Name:   BITPIX  Key mdType: 0  Key Value:             -64  Key Comment: number of bits per data pixel
- Key Name:  HISTORY  Key mdType: 4  Key Value:                  Key Comment: 
+ Key Name:  HISTORY  Key mdType: 14  Key Value:                  Key Comment: 
     Key Name:  HISTORY  Key mdType: 5  Key Value:                  Key Comment: File modified by user 'harman' with fv  on 2004-08-04T<DATE>
     Key Name:  HISTORY  Key mdType: 5  Key Value:                  Key Comment: File modified by user 'harman' with fv  on 2004-08-04T<DATE>
@@ -104,6 +104,4 @@
  Key Name:   GCOUNT  Key mdType: 0  Key Value:               1  Key Comment: required keyword; must = 1
  Key Name:  EXTNAME  Key mdType: 5  Key Value:     'MY_DATA_2'  Key Comment: 
- Key Name:  HISTORY  Key mdType: 5  Key Value:                  Key Comment: File modified by user 'harman' with fv  on 2004-08-04T<DATE>
- Key Name:  HISTORY  Key mdType: 5  Key Value:                  Key Comment: File modified by user 'harman' with fv  on 2004-08-04T<DATE>
 
 Contents of metadata table:
@@ -114,7 +112,4 @@
  Key Name:   GCOUNT  Key mdType: 0  Key Value:               1  Key Comment: required keyword; must = 1
  Key Name:   BITPIX  Key mdType: 0  Key Value:             -64  Key Comment: number of bits per data pixel
- Key Name:  HISTORY  Key mdType: 4  Key Value:                  Key Comment: 
-    Key Name:  HISTORY  Key mdType: 5  Key Value:                  Key Comment: File modified by user 'harman' with fv  on 2004-08-04T<DATE>
-    Key Name:  HISTORY  Key mdType: 5  Key Value:                  Key Comment: File modified by user 'harman' with fv  on 2004-08-04T<DATE>
  Key Name:  EXTNAME  Key mdType: 5  Key Value:     'MY_DATA_2'  Key Comment: 
 
Index: trunk/psLib/test/astronomy/verified/tst_psMetadata_02.stderr
===================================================================
--- trunk/psLib/test/astronomy/verified/tst_psMetadata_02.stderr	(revision 3367)
+++ trunk/psLib/test/astronomy/verified/tst_psMetadata_02.stderr	(revision 3381)
@@ -4,5 +4,5 @@
     Unallowable operation: name is NULL.
 <DATE><TIME>|<HOST>|E|psMetadataItemAllocV (FILE:LINENO)
-    Specified psMetadataType, 14, is not supported.
+    Specified psMetadataType, 15, is not supported.
 <DATE><TIME>|<HOST>|E|psMetadataAddItem (FILE:LINENO)
     Unallowable operation: md is NULL.
Index: trunk/psLib/test/astronomy/verified/tst_psMetadata_03.stderr
===================================================================
--- trunk/psLib/test/astronomy/verified/tst_psMetadata_03.stderr	(revision 3367)
+++ trunk/psLib/test/astronomy/verified/tst_psMetadata_03.stderr	(revision 3381)
@@ -2,5 +2,5 @@
     Unallowable operation: md is NULL.
 <DATE><TIME>|<HOST>|E|psMetadataRemove (FILE:LINENO)
-    Could not find metadata item, AARGH.
+    Failed to remove metadata item, AARGH, from metadata table.
 <DATE><TIME>|<HOST>|E|psMetadataRemove (FILE:LINENO)
     Could not find metadata item at index 22.
@@ -17,4 +17,4 @@
 <DATE><TIME>|<HOST>|E|psMetadataAddItem (FILE:LINENO)
     Unallowable operation: md->table is NULL.
-<DATE><TIME>|<HOST>|E|psMetadataAdd (FILE:LINENO)
+<DATE><TIME>|<HOST>|E|psMetadataAddV (FILE:LINENO)
     Failed to add metadata item to metadata collection list.
Index: trunk/psLib/test/astronomy/verified/tst_psMetadata_06.stdout
===================================================================
--- trunk/psLib/test/astronomy/verified/tst_psMetadata_06.stdout	(revision 3367)
+++ trunk/psLib/test/astronomy/verified/tst_psMetadata_06.stdout	(revision 3381)
@@ -9,5 +9,5 @@
 Key Name:  myItem1  Key mdType:  0  Key Value:             222  Key Comment: I am a signed integer
 Key Name:  myItem2  Key mdType:  0  Key Value:             333  Key Comment: I am a signed integer
-Key Name:  myItem2  Key mdType:  4  Key Value:                  Key Comment: I am a folder node
+Key Name:  myItem2  Key mdType:  4  Key Value:          psList  Key Comment: I am a list
 
 ---> TESTPOINT PASSED (psMetadata{Test A - Allocate metadata and items} | tst_psMetadata_06.c)
@@ -15,19 +15,19 @@
 /***************************** TESTPOINT ******************************************\
 *             TestFile: tst_psMetadata_06.c                                        *
-*            TestPoint: psMetadata{Test B - Add leaf node on top of existing leaf node} *
+*            TestPoint: psMetadata{Test B - replace an item in the metadata}       *
 *             TestType: Positive                                                   *
 \**********************************************************************************/
 
 
----> TESTPOINT PASSED (psMetadata{Test B - Add leaf node on top of existing leaf node} | tst_psMetadata_06.c)
+---> TESTPOINT PASSED (psMetadata{Test B - replace an item in the metadata} | tst_psMetadata_06.c)
 
 /***************************** TESTPOINT ******************************************\
 *             TestFile: tst_psMetadata_06.c                                        *
-*            TestPoint: psMetadata{Test C - Add leaf node to existing folder node} *
+*            TestPoint: psMetadata{Test C - add duplicate-key metadata item}       *
 *             TestType: Positive                                                   *
 \**********************************************************************************/
 
 
----> TESTPOINT PASSED (psMetadata{Test C - Add leaf node to existing folder node} | tst_psMetadata_06.c)
+---> TESTPOINT PASSED (psMetadata{Test C - add duplicate-key metadata item} | tst_psMetadata_06.c)
 
 /***************************** TESTPOINT ******************************************\
