Index: /gli/branches/rtl-gli/src/org/greenstone/gatherer/greenstone/Classifiers.java
===================================================================
--- /gli/branches/rtl-gli/src/org/greenstone/gatherer/greenstone/Classifiers.java	(revision 18355)
+++ /gli/branches/rtl-gli/src/org/greenstone/gatherer/greenstone/Classifiers.java	(revision 18356)
@@ -134,5 +134,5 @@
 		    classinfo_options += "&collection=" + collection_name;
 		}
-		classinfo_xml = RemoteGreenstoneServer.getScriptOptions("classinfo.pl", classinfo_options);
+		classinfo_xml = Gatherer.remoteGreenstoneServer.getScriptOptions("classinfo.pl", classinfo_options);
 	    }
 	    else {
@@ -195,5 +195,5 @@
 		    classinfo_options += "&collection=" + collection_name;
 		}
-		String classinfo_output = RemoteGreenstoneServer.getScriptOptions("classinfo.pl", classinfo_options);
+		String classinfo_output = Gatherer.remoteGreenstoneServer.getScriptOptions("classinfo.pl", classinfo_options);
 		xml = new StringBuffer(classinfo_output);
 	    }
Index: /gli/branches/rtl-gli/src/org/greenstone/gatherer/greenstone/LocalLibraryServer.java
===================================================================
--- /gli/branches/rtl-gli/src/org/greenstone/gatherer/greenstone/LocalLibraryServer.java	(revision 18355)
+++ /gli/branches/rtl-gli/src/org/greenstone/gatherer/greenstone/LocalLibraryServer.java	(revision 18356)
@@ -139,5 +139,5 @@
 
 	// Configure the server for immediate entry
-	gsdlsite_cfg_file.set();
+	//gsdlsite_cfg_file.set();
 
 	// Spawn local library server process
@@ -286,13 +286,24 @@
 	public GSDLSiteConfig(File server_exe) {
 	    debug("New GSDLSiteConfig for: " + server_exe.getAbsolutePath());
+	    
 	    gsdlsite_cfg = new File(server_exe.getParentFile(), GSDLSITE_CFG);
 	    glisite_cfg = new File(server_exe.getParentFile(), GLISITE_CFG);
+
+	    File configFile = null;
+	    if(glisite_cfg.exists()) {
+		configFile = glisite_cfg;
+	    } else if(gsdlsite_cfg.exists()) {
+		configFile = gsdlsite_cfg;
+	    } else {
+		debug("Neither the file glisite.cfg nor GSDLsite.cfg can be found!");
+	    }
+	    
 	    autoenter_initial = null;
 	    start_browser_initial = null;
-	    if(gsdlsite_cfg.exists()) {
-		debug("Load: " + gsdlsite_cfg.getAbsolutePath());
+	    if(configFile != null) {
+		debug("Load: " + configFile.getAbsolutePath());
 		clear();
 		try {
-		    BufferedReader in = new BufferedReader(new FileReader(gsdlsite_cfg));
+		    BufferedReader in = new BufferedReader(new FileReader(configFile));
 		    String line = null;
 		    while((line = in.readLine()) != null) {
@@ -315,9 +326,6 @@
 		}
 	    }
-	    else {
-		debug("No GSDLsite.cfg file can be found!");
-	    }
-	}
-
+	}
+	
 	public boolean exists() {
 	    return gsdlsite_cfg.exists();
@@ -402,5 +410,5 @@
 	    }
 	    else {
-		debug("No GSDLsite.cfg file can be found!");
+		debug("No glisite.cfg file can be found!");
 	    }
 	}
Index: /gli/branches/rtl-gli/src/org/greenstone/gatherer/greenstone/Plugins.java
===================================================================
--- /gli/branches/rtl-gli/src/org/greenstone/gatherer/greenstone/Plugins.java	(revision 18355)
+++ /gli/branches/rtl-gli/src/org/greenstone/gatherer/greenstone/Plugins.java	(revision 18356)
@@ -83,5 +83,5 @@
 	// If we've found the plugin, load its arguments now, if required
 	if (plugin != null && arguments_required) {
-	    if (plugin.getArguments().size() == 0 && plugin.didLoadingOptionsFail() == false) {
+	    if (!plugin.hasLoadedOptions()) {
 		loadPluginInfo(plugin, collection_specific);
 	    }
@@ -135,5 +135,5 @@
 		    pluginfo_options += "&collection=" + collection_name;
 		}
-		pluginfo_xml = RemoteGreenstoneServer.getScriptOptions("pluginfo.pl", pluginfo_options);
+		pluginfo_xml = Gatherer.remoteGreenstoneServer.getScriptOptions("pluginfo.pl", pluginfo_options);
 	    }
 	    else {
@@ -165,7 +165,9 @@
 	    // Check the XML output was obtained successfully
 	    if (pluginfo_xml == null || pluginfo_xml.length() == 0) {
-		plugin.setLoadingOptionsFailed();
+		plugin.setHasLoadedOptions(false); // failure to load options
 		JOptionPane.showMessageDialog(Gatherer.g_man, Dictionary.get("CDM.PlugInManager.PlugIn_XML_Parse_Failed", plugin.getName()), Dictionary.get("General.Error"), JOptionPane.ERROR_MESSAGE);
 		return;
+	    } else {
+		plugin.setHasLoadedOptions(true);
 	    }
 
@@ -196,5 +198,5 @@
 		    pluginfo_options += "&collection=" + collection_name;
 		}
-		String pluginfo_output = RemoteGreenstoneServer.getScriptOptions("pluginfo.pl", pluginfo_options);
+		String pluginfo_output = Gatherer.remoteGreenstoneServer.getScriptOptions("pluginfo.pl", pluginfo_options);
 		xml = new StringBuffer(pluginfo_output);
 	    }
@@ -243,7 +245,9 @@
 	Document document = XMLTools.parseXML(new StringReader(xml));
 	if (document == null) {
-	    plugin.setLoadingOptionsFailed();
+	    plugin.setHasLoadedOptions(false); // failure to load the options/failed plugin
 	    JOptionPane.showMessageDialog(Gatherer.g_man, Dictionary.get("CDM.PlugInManager.PlugIn_XML_Parse_Failed", plugin.getName()), Dictionary.get("General.Error"), JOptionPane.ERROR_MESSAGE);
 	    return;
+	} else {
+	    plugin.setHasLoadedOptions(true);
 	}
 
@@ -268,4 +272,7 @@
 	    else if (node_name.equalsIgnoreCase("Explodes")) {
 		plugin.setDoesExplodeMetadataDatabases(XMLTools.getValue(node).equalsIgnoreCase(StaticStrings.YES_STR));
+	    }
+	    else if (node_name.equalsIgnoreCase("SourceReplaceable")) { // looking for <SourceReplaceable> tag
+		plugin.setDoesReplaceSrcDocsWithHtml(XMLTools.getValue(node).equalsIgnoreCase(StaticStrings.YES_STR));
 	    }
 	    else if (node_name.equalsIgnoreCase("Processes")) {
