Index: /main/trunk/gli/src/org/greenstone/gatherer/Configuration.java
===================================================================
--- /main/trunk/gli/src/org/greenstone/gatherer/Configuration.java	(revision 36228)
+++ /main/trunk/gli/src/org/greenstone/gatherer/Configuration.java	(revision 36229)
@@ -63,10 +63,16 @@
     static final public int EXPERT_MODE    = 3; 
 
+  // Gs2 and 3 use the same config file format - same template - but will save in user folder as config2/3 so you can
+  // save settings for version 2 and 3.
+  static final public String CONFIG_XML_TEMPLATE = "config.xml";
+  static final public String CONFIG_XML_2 = "config2.xml";
+  static final public String CONFIG_XML_3 = "config3.xml";
+  static final public String CONFIG_REMOTE_XML = "configRemote.xml";
+
+    static final public String TEMPLATE_CONFIG_PREFIX = "xml/";
+     static final public String FEDORA_CONFIG_PREFIX = "fedora-";
+ 
     /** The string identifying an argument's name attribute. */
     static final private String ARGUMENT_NAME = "name";
-    /** The name of the general Gatherer configuration file. 
-     Gatherer will change this to configRemote if isGsdlRemote */
-    static public String CONFIG_XML = "config.xml";
-    static public String FEDORA_CONFIG_PREFIX = "fedora-";
 
     /** The name of the root element of the subtree containing gatherer configuration options. This is required as the document itself may contain several other subtrees of settings (such as in the case of a '.col' file). */
@@ -82,7 +88,4 @@
     /** The name of the other arguments element. */
     static final private String OTHER = "Other";
-    /** The name of the general Gatherer configuration template.
-    Gatherer will change this to xml/configRemote.xml if isGSDLRemote */
-    static public String TEMPLATE_CONFIG_XML = "xml/config.xml";
     /** The first of three patterns used during tokenization, this pattern handles a comma separated list. */
     static final private String TOKENIZER_PATTERN1 = " ,\n\t";
@@ -94,4 +97,10 @@
     static public Configuration self = null;
     static public String gli_user_directory_path = null;
+    /** The name of the general Gatherer configuration file. 
+     Gatherer will set this to configRemote/2/3 as necessary */
+  static public String config_xml = CONFIG_XML_2; 
+    /** The name of the general Gatherer configuration template.
+    Gatherer will change this to xml/configRemote.xml if isGSDLRemote */
+  static public String template_config_xml = TEMPLATE_CONFIG_PREFIX + CONFIG_XML_TEMPLATE; 
 
     static public boolean just_updated_config_xml_file = false;
@@ -156,9 +165,10 @@
 
 	// Try to load the configuration file from the user specific location
-	String config_xml_file_name = CONFIG_XML;
-
-	if (fedora_info != null && fedora_info.isActive()) {
-	    config_xml_file_name = FEDORA_CONFIG_PREFIX + config_xml_file_name;
-	}
+	String config_xml_file_name = this.config_xml;
+
+        // I think this has already been set by Gatherer
+	// if (fedora_info != null && fedora_info.isActive()) {
+	//     config_xml_file_name = FEDORA_CONFIG_PREFIX + config_xml_file_name;
+	// }
 
 	// If the existing user config.xml file isn't recent enough, backup the old version and update it
@@ -172,5 +182,5 @@
 	// Create a new config from the default configuration file from our xml library
 	if (general_config == null) {
-	    general_config = XMLTools.parseXMLFile(TEMPLATE_CONFIG_XML, true);
+	    general_config = XMLTools.parseXMLFile(this.template_config_xml, true);
 	    just_updated_config_xml_file = true;
 	}
@@ -248,5 +258,5 @@
     {
 	// Check if the configuration file actually needs updating by looking at the version numbers
-	Document new_document = XMLTools.parseXMLFile(TEMPLATE_CONFIG_XML, true);
+	Document new_document = XMLTools.parseXMLFile(template_config_xml, true);
 	Document old_document = XMLTools.parseXMLFile(config_xml_file);
 	if (new_document == null || old_document == null) {
@@ -736,9 +746,10 @@
 	// We first try exporting to a user specific place
 	File user_config_xml = null;
-	String config_xml_name = CONFIG_XML;
-
-	if (fedora_info != null && fedora_info.isActive()) {
-	    config_xml_name = FEDORA_CONFIG_PREFIX + config_xml_name;
-	}
+	String config_xml_name = config_xml;
+
+        // this should have been set already
+	// if (fedora_info != null && fedora_info.isActive()) {
+	//     config_xml_name = FEDORA_CONFIG_PREFIX + config_xml_name;
+	// }
 
 	try {
Index: /main/trunk/gli/src/org/greenstone/gatherer/Gatherer.java
===================================================================
--- /main/trunk/gli/src/org/greenstone/gatherer/Gatherer.java	(revision 36228)
+++ /main/trunk/gli/src/org/greenstone/gatherer/Gatherer.java	(revision 36229)
@@ -186,4 +186,13 @@
 		}
 
+                // Are we greenstone 2 or 3?
+                if (go.gsdl3_path != null && !go.gsdl3_path.equals("")) {
+                  this.GS3 = true;
+                  Configuration.config_xml = Configuration.CONFIG_XML_3;
+		} else {
+                  go.gsdl3_path = null;
+                  go.gsdl3_src_path = null;
+		}
+                
 		// Are we using a remote Greenstone?
 		if (go.use_remote_greenstone) {
@@ -217,11 +226,11 @@
 		if (isGsdlRemote) {
 			if (go.fedora_info.isActive()) {
-				Configuration.TEMPLATE_CONFIG_XML = "xml/" + Configuration.FEDORA_CONFIG_PREFIX + "configRemote.xml";
+                          Configuration.template_config_xml = Configuration.TEMPLATE_CONFIG_PREFIX + Configuration.FEDORA_CONFIG_PREFIX + Configuration.CONFIG_REMOTE_XML; 
 			}
 			else {
-				Configuration.TEMPLATE_CONFIG_XML = "xml/configRemote.xml";
-			}
-
-			Configuration.CONFIG_XML = "configRemote.xml"; 
+                          Configuration.template_config_xml = Configuration.TEMPLATE_CONFIG_PREFIX +  Configuration.CONFIG_REMOTE_XML; 
+			}
+
+			Configuration.config_xml = Configuration.CONFIG_REMOTE_XML; 
 
 			File collect_directory = new File(Gatherer.getCollectDirectoryPath());
@@ -232,5 +241,5 @@
 		else {	    
 			if (go.fedora_info.isActive()) {
-				Configuration.TEMPLATE_CONFIG_XML = "xml/" + Configuration.FEDORA_CONFIG_PREFIX + Configuration.CONFIG_XML;
+				Configuration.template_config_xml = Configuration.TEMPLATE_CONFIG_PREFIX + Configuration.FEDORA_CONFIG_PREFIX + Configuration.config_xml;
 			}
 			// else, the CONFIG_XML uses the default config file, which is for the local GS server
@@ -256,10 +265,5 @@
 	String site_name, String servlet_path, String collect_directory_path) 
 	{
-		if (gsdl3_path != null && !gsdl3_path.equals("")) {
-			this.GS3 = true;
-		} else {
-			gsdl3_path = null;
-			gsdl3_src_path = null;
-		}
+	
 
 		// Create the debug stream if required
