Index: main/trunk/greenstone3/src/java/org/greenstone/gsdl3/action/Action.java
===================================================================
--- main/trunk/greenstone3/src/java/org/greenstone/gsdl3/action/Action.java	(revision 32548)
+++ main/trunk/greenstone3/src/java/org/greenstone/gsdl3/action/Action.java	(revision 32549)
@@ -27,5 +27,6 @@
 	protected HashMap<String, Object> config_params = null;
 	
-	
+  /** the xml element languageList */
+  protected Element language_list = null;
 	/** a converter class to parse XML and create Docs */
 	protected XMLConverter converter = null;
@@ -58,4 +59,8 @@
 	}
 
+  /** give the action access to the list of languages */
+  public void setLanguageList(Element lang_list) {
+    this.language_list = lang_list;
+  }
 	public boolean configure()
 	{
Index: main/trunk/greenstone3/src/java/org/greenstone/gsdl3/action/PageAction.java
===================================================================
--- main/trunk/greenstone3/src/java/org/greenstone/gsdl3/action/PageAction.java	(revision 32548)
+++ main/trunk/greenstone3/src/java/org/greenstone/gsdl3/action/PageAction.java	(revision 32549)
@@ -58,5 +58,5 @@
 		else if (page_name.equals(ABOUT_PAGE) || page_name.equals(PREFS_PAGE))
 		{
-		  response = aboutPage(request);
+		  response = aboutOrPrefsPage(request, page_name);
 			//}else if (page_name.equals(PREFS_PAGE)) {
 			//response = prefsPage(request);
@@ -227,5 +227,5 @@
 	} // homePage
 
-	protected Element aboutPage(Element request)
+  protected Element aboutOrPrefsPage(Element request, String page_name)
 	{
 	  Document doc = XMLConverter.newDOM();
@@ -239,9 +239,11 @@
 		if (coll_name == null || coll_name.equals(""))
 		{
-			logger.error("about page requested with no collection or cluster specified!");
-			// return an empty response
+		  // return a response with no collection info - must be prefs from home page
 			Element response = doc.createElement(GSXML.RESPONSE_ELEM);
 			addSiteMetadata(response, userContext);
 			addInterfaceOptions(response);
+			if (this.language_list != null) {
+			  response.appendChild(doc.importNode(this.language_list, true));
+			}
 			return response;
 		}
@@ -303,4 +305,7 @@
 		addSiteMetadata(response, userContext);
 		addInterfaceOptions(response);
+		if (page_name.equals(PREFS_PAGE) && this.language_list != null) {
+		  response.appendChild(response.getOwnerDocument().importNode(this.language_list, true));
+		}
 		return response;
 	}
Index: main/trunk/greenstone3/src/java/org/greenstone/gsdl3/core/DefaultReceptionist.java
===================================================================
--- main/trunk/greenstone3/src/java/org/greenstone/gsdl3/core/DefaultReceptionist.java	(revision 32548)
+++ main/trunk/greenstone3/src/java/org/greenstone/gsdl3/core/DefaultReceptionist.java	(revision 32549)
@@ -71,8 +71,5 @@
 		boolean get_service_description = false;
 		Element page_response = (Element) GSXML.getChildByTagName(page, GSXML.PAGE_RESPONSE_ELEM);
-		if (this.language_list != null)
-		{
-		  page_response.appendChild(doc.importNode(this.language_list, true));
-		}
+
 		Element coll_description = (Element) GSXML.getChildByTagName(page_response, GSXML.COLLECTION_ELEM);
 		if (coll_description == null)
Index: main/trunk/greenstone3/src/java/org/greenstone/gsdl3/core/Receptionist.java
===================================================================
--- main/trunk/greenstone3/src/java/org/greenstone/gsdl3/core/Receptionist.java	(revision 32548)
+++ main/trunk/greenstone3/src/java/org/greenstone/gsdl3/core/Receptionist.java	(revision 32549)
@@ -133,4 +133,10 @@
 		setUpInterfaceOptions(config_elem);
 
+		this.language_list = (Element) GSXML.getChildByTagName(config_elem, "languageList");
+		if (this.language_list == null)
+		{
+			logger.error(" didn't find a language list in the config file!!");
+		}
+		
 		// load up the actions
 		Element action_list = (Element) GSXML.getChildByTagName(config_elem, GSXML.ACTION_ELEM + GSXML.LIST_MODIFIER);
@@ -157,12 +163,8 @@
 			ac.configure();
 			ac.addActionParameters(this.params);
+			ac.setLanguageList(this.language_list);
 			this.action_map.put(action_name, ac);
 		}
 
-		this.language_list = (Element) GSXML.getChildByTagName(config_elem, "languageList");
-		if (language_list == null)
-		{
-			logger.error(" didn't find a language list in the config file!!");
-		}
 
 		return true;
@@ -230,4 +232,5 @@
 				ac.configure();
 				ac.addActionParameters(this.params);
+				ac.setLanguageList(this.language_list);
 				this.action_map.put(action, ac);
 				a = ac;
@@ -317,5 +320,5 @@
 	    Element p = (Element)params.item(j);
 	    if (!p.getAttribute(GSXML.SENSITIVE_ATT).equals("")) {
-	      logger.error("removing param "+p.getAttribute("name"));
+	      logger.debug("removing param "+p.getAttribute("name"));
 	      param_list.removeChild(p);
 	    }
Index: main/trunk/greenstone3/src/java/org/greenstone/gsdl3/core/TransformingReceptionist.java
===================================================================
--- main/trunk/greenstone3/src/java/org/greenstone/gsdl3/core/TransformingReceptionist.java	(revision 32548)
+++ main/trunk/greenstone3/src/java/org/greenstone/gsdl3/core/TransformingReceptionist.java	(revision 32549)
@@ -133,4 +133,14 @@
 		setUpInterfaceOptions(config_elem);
 
+		Element lang_list = (Element) GSXML.getChildByTagName(config_elem, "languageList");
+		if (lang_list == null)
+		{
+			logger.error(" didn't find a language list in the config file!!");
+		}
+		else
+		{
+		  this.language_list = lang_list;
+		}
+		
 		Element action_list = (Element) GSXML.getChildByTagName(config_elem, GSXML.ACTION_ELEM + GSXML.LIST_MODIFIER);
 		NodeList actions = action_list.getElementsByTagName(GSXML.ACTION_ELEM);
@@ -156,4 +166,5 @@
 			ac.configure();
 			ac.addActionParameters(this.params);
+			ac.setLanguageList(this.language_list);
 			this.action_map.put(action_name, ac);
 
@@ -175,14 +186,4 @@
 				this.xslt_map.put(map_key, subxslt);
 			}
-		}
-		Element lang_list = (Element) GSXML.getChildByTagName(config_elem, "languageList");
-		if (lang_list == null)
-		{
-			logger.error(" didn't find a language list in the config file!!");
-		}
-		else
-		{
-		  //this.language_list = (Element) this.doc.importNode(lang_list, true);
-		  this.language_list = lang_list;
 		}
 
