Index: main/trunk/greenstone2/runtime-src/src/recpt/authenaction.cpp
===================================================================
--- main/trunk/greenstone2/runtime-src/src/recpt/authenaction.cpp	(revision 22980)
+++ main/trunk/greenstone2/runtime-src/src/recpt/authenaction.cpp	(revision 22984)
@@ -47,4 +47,5 @@
   arg_ainfo.longname = "action";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "a";
@@ -56,4 +57,5 @@
   arg_ainfo.longname = "user account status";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "invalid";
@@ -65,4 +67,5 @@
   arg_ainfo.longname = "user groups"; // comma seperated list
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -74,4 +77,5 @@
   arg_ainfo.longname = "user name";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -83,4 +87,5 @@
   arg_ainfo.longname = "password";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -93,4 +98,5 @@
   arg_ainfo.longname = "user time key";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -102,4 +108,5 @@
   arg_ainfo.longname = "whether a user has been authenticated";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -111,4 +118,5 @@
   arg_ainfo.longname = "the compressed args of the refer page";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -120,4 +128,5 @@
   arg_ainfo.longname = "whether user authentication is needed";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
Index: main/trunk/greenstone2/runtime-src/src/recpt/basequeryaction.cpp
===================================================================
--- main/trunk/greenstone2/runtime-src/src/recpt/basequeryaction.cpp	(revision 22980)
+++ main/trunk/greenstone2/runtime-src/src/recpt/basequeryaction.cpp	(revision 22984)
@@ -58,4 +58,5 @@
   arg_ainfo.longname = "query string";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -67,4 +68,5 @@
   arg_ainfo.longname = "query string for second query";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -76,4 +78,5 @@
   arg_ainfo.longname = "combine queries";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -86,4 +89,5 @@
   arg_ainfo.longname = "maximum number of documents";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "50";
@@ -95,4 +99,5 @@
   arg_ainfo.longname = "hits per page";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "20";
@@ -104,4 +109,5 @@
   arg_ainfo.longname = "start results from";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "1";
@@ -114,4 +120,5 @@
   arg_ainfo.longname = "i'm feeling lucky";
   arg_ainfo.multiplechar = false;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -123,4 +130,5 @@
   arg_ainfo.longname = "i'm feeling lucky number";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "1";
@@ -132,4 +140,5 @@
   arg_ainfo.longname = "the next search result number";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "0";
@@ -141,4 +150,5 @@
   arg_ainfo.longname = "the previous search result number";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "0";
@@ -151,4 +161,5 @@
   arg_ainfo.longname = "sort field";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -161,4 +172,5 @@
   arg_ainfo.longname = "form query num fields";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "4";
@@ -171,4 +183,5 @@
   arg_ainfo.longname = "form query fields";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -181,4 +194,5 @@
   arg_ainfo.longname = "form query values";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -192,4 +206,5 @@
   arg_ainfo.longname = "form query combines";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -201,4 +216,5 @@
   arg_ainfo.longname = "form query advanced query";
   arg_ainfo.multiplechar = false;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "0";
@@ -211,4 +227,5 @@
   arg_ainfo.longname = "Lucene fuzziness value";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -234,4 +251,5 @@
   arg_ainfo.longname = "history save";
   arg_ainfo.multiplechar = false;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "0";
Index: main/trunk/greenstone2/runtime-src/src/recpt/browseaction.cpp
===================================================================
--- main/trunk/greenstone2/runtime-src/src/recpt/browseaction.cpp	(revision 22980)
+++ main/trunk/greenstone2/runtime-src/src/recpt/browseaction.cpp	(revision 22984)
@@ -40,4 +40,5 @@
   arg_ainfo.longname = "action";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "br";
@@ -49,4 +50,5 @@
   arg_ainfo.longname = "browse criterion 1";
   arg_ainfo.multiplechar = false;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "0";
@@ -59,4 +61,5 @@
   arg_ainfo.longname = "browse criterion 2";
   arg_ainfo.multiplechar = false;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "0";
@@ -70,4 +73,5 @@
   arg_ainfo.longname = "browse docs per page";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::good;
   arg_ainfo.argdefault = g_EmptyText;
@@ -80,4 +84,5 @@
   arg_ainfo.longname = "browse filter text";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::none;
   arg_ainfo.argdefault = g_EmptyText;
@@ -91,9 +96,9 @@
   arg_ainfo.longname = "browse all or any";
   arg_ainfo.multiplechar = false;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "0";
   arg_ainfo.savedarginfo = cgiarginfo::must;
-  argsinfo.addarginfo (NULL, arg_ainfo);
-  
+  argsinfo.addarginfo (NULL, arg_ainfo); 
   
 }
Index: main/trunk/greenstone2/runtime-src/src/recpt/collectoraction.cpp
===================================================================
--- main/trunk/greenstone2/runtime-src/src/recpt/collectoraction.cpp	(revision 22980)
+++ main/trunk/greenstone2/runtime-src/src/recpt/collectoraction.cpp	(revision 22984)
@@ -72,4 +72,5 @@
   arg_ainfo.longname = "action";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "collector";
@@ -80,4 +81,5 @@
   arg_ainfo.longname = "page";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "intro";
@@ -90,4 +92,5 @@
   arg_ainfo.longname = "collector specific";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -98,4 +101,5 @@
   arg_ainfo.longname = "collector specific";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -106,4 +110,5 @@
   arg_ainfo.longname = "collector specific";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -114,4 +119,5 @@
   arg_ainfo.longname = "collector specific";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -122,4 +128,5 @@
   arg_ainfo.longname = "collector specific";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -130,4 +137,5 @@
   arg_ainfo.longname = "collector specific";
   arg_ainfo.multiplechar = false;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "0";
@@ -138,4 +146,5 @@
   arg_ainfo.longname = "collector specific";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -147,4 +156,5 @@
   arg_ainfo.longname = "collector specific";
   arg_ainfo.multiplechar = false;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "0";
@@ -157,4 +167,5 @@
   arg_ainfo.longname = "collector specific";
   arg_ainfo.multiplechar = false;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "0";
@@ -167,4 +178,5 @@
   arg_ainfo.longname = "collector specific";
   arg_ainfo.multiplechar = false;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "0";
@@ -175,4 +187,5 @@
   arg_ainfo.longname = "configuration file contents";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -183,4 +196,5 @@
   arg_ainfo.longname = "collector specific";
   arg_ainfo.multiplechar = false;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "0";
@@ -193,4 +207,5 @@
   arg_ainfo.longname = "collector specific";
   arg_ainfo.multiplechar = false;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "0";
@@ -203,4 +218,5 @@
   arg_ainfo.longname = "collector specific";
   arg_ainfo.multiplechar = false;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "0";
@@ -211,4 +227,5 @@
   arg_ainfo.longname = "collector specific";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "3";
Index: main/trunk/greenstone2/runtime-src/src/recpt/configaction.cpp
===================================================================
--- main/trunk/greenstone2/runtime-src/src/recpt/configaction.cpp	(revision 22980)
+++ main/trunk/greenstone2/runtime-src/src/recpt/configaction.cpp	(revision 22984)
@@ -46,4 +46,5 @@
   arg_ainfo.longname = "action";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "config";
@@ -62,4 +63,5 @@
   arg_ainfo.longname = "config command";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;  
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
Index: main/trunk/greenstone2/runtime-src/src/recpt/depositoraction.cpp
===================================================================
--- main/trunk/greenstone2/runtime-src/src/recpt/depositoraction.cpp	(revision 22980)
+++ main/trunk/greenstone2/runtime-src/src/recpt/depositoraction.cpp	(revision 22984)
@@ -78,4 +78,5 @@
   arg_ainfo.longname = "action";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "depositor";
@@ -86,4 +87,5 @@
   arg_ainfo.longname = "page";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "select";   
@@ -95,4 +97,5 @@
   arg_ainfo.longname = "depositor specific"; 
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "0";   
@@ -105,4 +108,5 @@
   arg_ainfo.longname = "depositor specific"; 
   arg_ainfo.fileupload = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.savedarginfo = cgiarginfo::mustnot;  
   argsinfo.addarginfo (NULL, arg_ainfo);
@@ -116,4 +120,5 @@
   arg_ainfo.longname = "depositor specific"; 
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;   
@@ -125,4 +130,5 @@
   arg_ainfo.longname = "depositor specific"; 
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "0";   
@@ -134,4 +140,5 @@
   arg_ainfo.longname = "depositor specific"; 
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "0";   
@@ -144,4 +151,5 @@
   arg_ainfo.longname = "depositor specific";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -152,4 +160,5 @@
 //   arg_ainfo.longname = "depositor specific";
 //   arg_ainfo.multiplechar = true;
+//   arg_ainfo.multiplevalue = false;
 //   arg_ainfo.defaultstatus = cgiarginfo::weak;
 //   arg_ainfo.argdefault = g_EmptyText;
@@ -160,4 +169,5 @@
   arg_ainfo.longname = "depositor specific";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -168,4 +178,5 @@
   arg_ainfo.longname = "depositor specific";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -176,4 +187,5 @@
 //   arg_ainfo.longname = "depositor specific";
 //   arg_ainfo.multiplechar = false;
+//   arg_ainfo.multiplevalue = false;
 //   arg_ainfo.defaultstatus = cgiarginfo::weak;
 //   arg_ainfo.argdefault = "0";
@@ -184,4 +196,5 @@
 //   arg_ainfo.longname = "depositor specific";
 //   arg_ainfo.multiplechar = true;
+//   arg_ainfo.multiplevalue = false;
 //   arg_ainfo.defaultstatus = cgiarginfo::weak;
 //   arg_ainfo.argdefault = g_EmptyText;
@@ -192,4 +205,5 @@
 //   arg_ainfo.longname = "configuration file contents";
 //   arg_ainfo.multiplechar = true;
+//   arg_ainfo.multiplevalue = false;
 //   arg_ainfo.defaultstatus = cgiarginfo::weak;
 //   arg_ainfo.argdefault = g_EmptyText;
@@ -202,4 +216,5 @@
 //   arg_ainfo.longname = "depositor specific";
 //   arg_ainfo.multiplechar = false;
+//   arg_ainfo.multiplevalue = false;
 //   arg_ainfo.defaultstatus = cgiarginfo::weak;
 //   arg_ainfo.argdefault = "0";
@@ -212,4 +227,5 @@
   arg_ainfo.longname = "depositor specific";
   arg_ainfo.multiplechar = false;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "1";
Index: main/trunk/greenstone2/runtime-src/src/recpt/documentaction.cpp
===================================================================
--- main/trunk/greenstone2/runtime-src/src/recpt/documentaction.cpp	(revision 22980)
+++ main/trunk/greenstone2/runtime-src/src/recpt/documentaction.cpp	(revision 22984)
@@ -44,4 +44,5 @@
   arg_ainfo.longname = "action";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "p";
@@ -52,4 +53,5 @@
   arg_ainfo.longname = "document OID";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::none;
   arg_ainfo.argdefault = g_EmptyText;
@@ -62,4 +64,5 @@
   arg_ainfo.longname = "internal link preference";
   arg_ainfo.multiplechar = false;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "l";
@@ -70,4 +73,5 @@
   arg_ainfo.longname = "classification OID";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::none;
   arg_ainfo.argdefault = g_EmptyText;
@@ -80,4 +84,5 @@
   arg_ainfo.longname = "expand contents";
   arg_ainfo.multiplechar = false;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "0";
@@ -92,4 +97,5 @@
   arg_ainfo.longname = "expand text";
   arg_ainfo.multiplechar = false;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "0";
@@ -102,4 +108,5 @@
   arg_ainfo.longname = "go to page";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::none;
   arg_ainfo.argdefault = g_EmptyText;
@@ -115,4 +122,5 @@
   arg_ainfo.longname = "highlighting on/off";
   arg_ainfo.multiplechar = false;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "1";
@@ -125,4 +133,5 @@
   arg_ainfo.longname = "detached page";
   arg_ainfo.multiplechar = false;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "0";
@@ -134,4 +143,5 @@
   arg_ainfo.longname = "detach all doc pages";
   arg_ainfo.multiplechar = false;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "0";
@@ -145,4 +155,5 @@
   arg_ainfo.longname = "frame";
   arg_ainfo.multiplechar = false;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "0";
@@ -155,4 +166,5 @@
   arg_ainfo.longname = "include search bar";
   arg_ainfo.multiplechar = false;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "1";
@@ -165,4 +177,5 @@
   arg_ainfo.longname = "include relevant documents";
   arg_ainfo.multiplechar = false;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "0";
@@ -174,4 +187,5 @@
   arg_ainfo.longname = "date metadata";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
Index: main/trunk/greenstone2/runtime-src/src/recpt/dynamicclassifieraction.cpp
===================================================================
--- main/trunk/greenstone2/runtime-src/src/recpt/dynamicclassifieraction.cpp	(revision 22980)
+++ main/trunk/greenstone2/runtime-src/src/recpt/dynamicclassifieraction.cpp	(revision 22984)
@@ -39,4 +39,5 @@
   arg_ainfo.longname = "dynamic classifier ID";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "";
@@ -47,4 +48,5 @@
   arg_ainfo.longname = "dynamic classifier node";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "";
Index: main/trunk/greenstone2/runtime-src/src/recpt/extlinkaction.cpp
===================================================================
--- main/trunk/greenstone2/runtime-src/src/recpt/extlinkaction.cpp	(revision 22980)
+++ main/trunk/greenstone2/runtime-src/src/recpt/extlinkaction.cpp	(revision 22984)
@@ -40,4 +40,5 @@
   arg_ainfo.longname = "action";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "extlink";
@@ -48,4 +49,5 @@
   arg_ainfo.longname = "external link preference";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "direct"; // changed from "prompt" - will now directly load external links instead of
@@ -57,4 +59,5 @@
   arg_ainfo.longname = "document OID";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::none;
   arg_ainfo.argdefault = g_EmptyText;
@@ -65,4 +68,5 @@
   arg_ainfo.longname = "URL of external link";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::none;
   arg_ainfo.argdefault = g_EmptyText;
@@ -73,4 +77,5 @@
   arg_ainfo.longname = "is relative link";
   arg_ainfo.multiplechar = false;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::none;
   arg_ainfo.argdefault = "0";
Index: main/trunk/greenstone2/runtime-src/src/recpt/gtiaction.cpp
===================================================================
--- main/trunk/greenstone2/runtime-src/src/recpt/gtiaction.cpp	(revision 22980)
+++ main/trunk/greenstone2/runtime-src/src/recpt/gtiaction.cpp	(revision 22984)
@@ -46,4 +46,5 @@
   arg_ainfo.longname = "translation target language code";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.savedarginfo = cgiarginfo::must;
@@ -53,4 +54,5 @@
   arg_ainfo.longname = "translation file key";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.savedarginfo = cgiarginfo::must;
@@ -60,4 +62,5 @@
   arg_ainfo.longname = "number of chunks per page";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "1";
Index: main/trunk/greenstone2/runtime-src/src/recpt/pageaction.cpp
===================================================================
--- main/trunk/greenstone2/runtime-src/src/recpt/pageaction.cpp	(revision 22980)
+++ main/trunk/greenstone2/runtime-src/src/recpt/pageaction.cpp	(revision 22984)
@@ -55,4 +55,5 @@
   arg_ainfo.longname = "action";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "p";
@@ -63,4 +64,5 @@
   arg_ainfo.longname = "page";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "home";
@@ -71,4 +73,5 @@
   arg_ainfo.longname = "html page";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -79,4 +82,5 @@
   arg_ainfo.longname = "set preferences button";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -90,4 +94,5 @@
   arg_ainfo.longname = "static page";
   arg_ainfo.multiplechar = false;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "0";
@@ -98,4 +103,5 @@
   arg_ainfo.longname = "book switch";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "off";
Index: main/trunk/greenstone2/runtime-src/src/recpt/phindaction.cpp
===================================================================
--- main/trunk/greenstone2/runtime-src/src/recpt/phindaction.cpp	(revision 22980)
+++ main/trunk/greenstone2/runtime-src/src/recpt/phindaction.cpp	(revision 22984)
@@ -44,4 +44,5 @@
   arg_ainfo.longname = "phind classifier";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -52,4 +53,5 @@
   arg_ainfo.longname = "phind XML mode";
   arg_ainfo.multiplechar = false;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "0";
@@ -60,4 +62,5 @@
   arg_ainfo.longname = "phind phrase number";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "0";
@@ -68,4 +71,5 @@
   arg_ainfo.longname = "phind phrase text";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -76,4 +80,5 @@
   arg_ainfo.longname = "phind first_e";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "0";
@@ -84,4 +89,5 @@
   arg_ainfo.longname = "phind last_e";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "10";
@@ -92,4 +98,5 @@
   arg_ainfo.longname = "phind first_l";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "0";
@@ -100,4 +107,5 @@
   arg_ainfo.longname = "phind last_l";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "10";
@@ -108,4 +116,5 @@
   arg_ainfo.longname = "phind first_d";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "0";
@@ -116,4 +125,5 @@
   arg_ainfo.longname = "phind last_d";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "10";
Index: main/trunk/greenstone2/runtime-src/src/recpt/pingaction.cpp
===================================================================
--- main/trunk/greenstone2/runtime-src/src/recpt/pingaction.cpp	(revision 22980)
+++ main/trunk/greenstone2/runtime-src/src/recpt/pingaction.cpp	(revision 22984)
@@ -35,4 +35,5 @@
   arg_ainfo.longname = "action";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "ping";
Index: main/trunk/greenstone2/runtime-src/src/recpt/queryaction.cpp
===================================================================
--- main/trunk/greenstone2/runtime-src/src/recpt/queryaction.cpp	(revision 22980)
+++ main/trunk/greenstone2/runtime-src/src/recpt/queryaction.cpp	(revision 22984)
@@ -50,4 +50,5 @@
   arg_ainfo.longname = "action";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "q";
@@ -59,4 +60,5 @@
   arg_ainfo.longname = "collection type";
   arg_ainfo.multiplechar = true; // can be empty or single char
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -68,4 +70,5 @@
   arg_ainfo.longname = "query mode";
   arg_ainfo.multiplechar = false;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "0";
@@ -77,4 +80,5 @@
   arg_ainfo.longname = "main index";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -86,4 +90,5 @@
   arg_ainfo.longname = "main index for second query";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -95,4 +100,5 @@
   arg_ainfo.longname = "sub collection index";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -104,4 +110,5 @@
   arg_ainfo.longname = "sub collection index for second query";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -113,4 +120,5 @@
   arg_ainfo.longname = "language index";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -122,4 +130,5 @@
   arg_ainfo.longname = "language index for second query";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -132,4 +141,5 @@
   arg_ainfo.longname = "search type";
   arg_ainfo.multiplechar = false;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "1";
@@ -141,4 +151,5 @@
   arg_ainfo.longname = "casefolding";
   arg_ainfo.multiplechar = false;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "1";
@@ -150,4 +161,5 @@
   arg_ainfo.longname = "casefolding support";
   arg_ainfo.multiplechar = false;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "0";
@@ -159,4 +171,5 @@
   arg_ainfo.longname = "stemming";
   arg_ainfo.multiplechar = false;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "0";
@@ -168,4 +181,5 @@
   arg_ainfo.longname = "stemming support";
   arg_ainfo.multiplechar = false;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "0";
@@ -177,4 +191,5 @@
   arg_ainfo.longname = "accentfolding";
   arg_ainfo.multiplechar = false;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "0";
@@ -186,4 +201,5 @@
   arg_ainfo.longname = "accentfolding support";
   arg_ainfo.multiplechar = false;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "0";
@@ -196,4 +212,5 @@
   arg_ainfo.longname = "cross collection searching";
   arg_ainfo.multiplechar = false;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "0";
@@ -205,4 +222,5 @@
   arg_ainfo.longname = "cross collection page";
   arg_ainfo.multiplechar = false;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "0";
@@ -214,4 +232,5 @@
   arg_ainfo.longname = "granularity";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText; 
@@ -223,4 +242,5 @@
   arg_ainfo.longname = "start date";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -232,4 +252,5 @@
   arg_ainfo.longname = "end date";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -241,4 +262,5 @@
   arg_ainfo.longname = "start date bc";
   arg_ainfo.multiplechar = false;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "0";
@@ -250,4 +272,5 @@
   arg_ainfo.longname = "end date bc";
   arg_ainfo.multiplechar = false;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "0";
@@ -259,4 +282,5 @@
   arg_ainfo.longname = "query type";
   arg_ainfo.multiplechar = true; // can be empty or single char
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -268,4 +292,5 @@
   arg_ainfo.longname = "query type options";
   arg_ainfo.multiplechar = true; // can be empty or single char
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -277,4 +302,5 @@
   arg_ainfo.longname = "query box type";
   arg_ainfo.multiplechar = false;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "0";
@@ -288,4 +314,5 @@
   arg_ainfo.longname = "form query stems";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -299,4 +326,5 @@
   arg_ainfo.longname = "form query casefolds";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
Index: main/trunk/greenstone2/runtime-src/src/recpt/querytools.cpp
===================================================================
--- main/trunk/greenstone2/runtime-src/src/recpt/querytools.cpp	(revision 22980)
+++ main/trunk/greenstone2/runtime-src/src/recpt/querytools.cpp	(revision 22984)
@@ -26,5 +26,4 @@
 #include "querytools.h"
 #include <ctype.h>
-#include "cgiutils.h"
 #include "unitool.h" // for is_unicode_letdig
 
@@ -664,10 +663,8 @@
     text_t stem = args["fqs"];
     if (stem.empty()) return; // somethings wrong
-	stem = decode_commas(stem); // %2C -> ,
     splitchar(stem.begin(), stem.end(), ',', stems);
     
     text_t fold = args["fqk"];
     if (fold.empty()) return; // somethings wrong
-	fold = decode_commas(fold); // %2C -> ,
     splitchar(fold.begin(), fold.end(), ',', folds);
   }
Index: main/trunk/greenstone2/runtime-src/src/recpt/sqlqueryaction.cpp
===================================================================
--- main/trunk/greenstone2/runtime-src/src/recpt/sqlqueryaction.cpp	(revision 22980)
+++ main/trunk/greenstone2/runtime-src/src/recpt/sqlqueryaction.cpp	(revision 22984)
@@ -47,4 +47,5 @@
   arg_ainfo.longname = "action";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "sqlq";
@@ -56,4 +57,5 @@
   arg_ainfo.longname = "sqlquery type options";
   arg_ainfo.multiplechar = true; // can be empty or single char
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -65,4 +67,5 @@
   arg_ainfo.longname = "sql form query num fields";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "4";
@@ -75,4 +78,5 @@
   arg_ainfo.longname = "sql form query fields";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -85,4 +89,5 @@
   arg_ainfo.longname = "sql form query values";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -95,4 +100,5 @@
   arg_ainfo.longname = "sql form query combines";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
Index: main/trunk/greenstone2/runtime-src/src/recpt/statusaction.cpp
===================================================================
--- main/trunk/greenstone2/runtime-src/src/recpt/statusaction.cpp	(revision 22980)
+++ main/trunk/greenstone2/runtime-src/src/recpt/statusaction.cpp	(revision 22984)
@@ -972,4 +972,5 @@
   arg_ainfo.longname = "action";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "status";
@@ -981,4 +982,5 @@
   arg_ainfo.longname = "page";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "frameset";
@@ -990,4 +992,5 @@
   arg_ainfo.longname = "protocol";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::none;
   arg_ainfo.argdefault = g_EmptyText;
@@ -998,4 +1001,5 @@
   arg_ainfo.longname = "configuration file contents";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
Index: main/trunk/greenstone2/runtime-src/src/recpt/tipaction.cpp
===================================================================
--- main/trunk/greenstone2/runtime-src/src/recpt/tipaction.cpp	(revision 22980)
+++ main/trunk/greenstone2/runtime-src/src/recpt/tipaction.cpp	(revision 22984)
@@ -37,4 +37,5 @@
   arg_ainfo.longname = "show tips";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "1";
Index: main/trunk/greenstone2/runtime-src/src/recpt/usersaction.cpp
===================================================================
--- main/trunk/greenstone2/runtime-src/src/recpt/usersaction.cpp	(revision 22980)
+++ main/trunk/greenstone2/runtime-src/src/recpt/usersaction.cpp	(revision 22984)
@@ -41,4 +41,5 @@
   arg_ainfo.longname = "action";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "um"; // user management
@@ -50,4 +51,5 @@
   arg_ainfo.longname = "user management action";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = "listusers";
@@ -59,4 +61,5 @@
   arg_ainfo.longname = "user management user name";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -68,4 +71,5 @@
   arg_ainfo.longname = "user management password";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -77,4 +81,5 @@
   arg_ainfo.longname = "user management new password 1";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -86,4 +91,5 @@
   arg_ainfo.longname = "user management new password 2";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -95,4 +101,5 @@
   arg_ainfo.longname = "user management account status";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -104,4 +111,5 @@
   arg_ainfo.longname = "user management groups"; // comma seperated list
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -113,4 +121,5 @@
   arg_ainfo.longname = "user management comment";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -122,4 +131,5 @@
   arg_ainfo.longname = "change password submit button";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -131,4 +141,5 @@
   arg_ainfo.longname = "edit user submit button";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
@@ -140,4 +151,5 @@
   arg_ainfo.longname = "confirm an action";
   arg_ainfo.multiplechar = true;
+  arg_ainfo.multiplevalue = false;
   arg_ainfo.defaultstatus = cgiarginfo::weak;
   arg_ainfo.argdefault = g_EmptyText;
