Index: /trunk/gli/src/org/greenstone/gatherer/cdm/Classifier.java
===================================================================
--- /trunk/gli/src/org/greenstone/gatherer/cdm/Classifier.java	(revision 12634)
+++ /trunk/gli/src/org/greenstone/gatherer/cdm/Classifier.java	(revision 12635)
@@ -61,5 +61,5 @@
 	String classifier_name = element.getAttribute(StaticStrings.TYPE_ATTRIBUTE);
 	// Determine the base classifier from the classifier name
-	Classifier base_classifier = CollectionDesignManager.classifier_manager.getClassifier(classifier_name, true);
+	Classifier base_classifier = ClassifierManager.getClassifier(classifier_name, true);
 	Classifier classifier = new Classifier(element, base_classifier);
 	if (base_classifier == null) {
Index: /trunk/gli/src/org/greenstone/gatherer/cdm/ClassifierManager.java
===================================================================
--- /trunk/gli/src/org/greenstone/gatherer/cdm/ClassifierManager.java	(revision 12634)
+++ /trunk/gli/src/org/greenstone/gatherer/cdm/ClassifierManager.java	(revision 12635)
@@ -60,5 +60,5 @@
 {
     // A list of all the classifiers in the core Greenstone "perllib/classify" folder (arguments may not be loaded)
-    private ArrayList core_greenstone_classifiers_list = null;
+    static private ArrayList core_greenstone_classifiers_list = null;
 
     /** The controls for editing the contents of this manager. */
@@ -77,4 +77,9 @@
 
 	core_greenstone_classifiers_list = loadClassifiersList();
+
+	// Force the assigned classifiers to be loaded and cached now
+	for (int i = 0; i < getSize(); i++) {
+	    getElementAt(i);
+	}
     }
 
@@ -103,5 +108,5 @@
 
 
-    public Classifier getClassifier(String classifier_name, boolean arguments_required)
+    static public Classifier getClassifier(String classifier_name, boolean arguments_required)
     {
 	for (int i = 0; i < core_greenstone_classifiers_list.size(); i++) {
@@ -124,5 +129,5 @@
 
 
-    private void loadClassifierInfo(Classifier classifier)
+    static private void loadClassifierInfo(Classifier classifier)
     {
 	System.err.println("Loading arguments for " + classifier.getName() + "...");
@@ -209,5 +214,5 @@
 
 
-    private void parseClassifierInfoXML(Classifier classifier, String xml)
+    static private void parseClassifierInfoXML(Classifier classifier, String xml)
     {
 	Document document = XMLTools.parseXML(new StringReader(xml));
@@ -216,5 +221,5 @@
 
 
-    private void parseClassifierInfoXMLNode(Classifier classifier, Node root_node)
+    static private void parseClassifierInfoXMLNode(Classifier classifier, Node root_node)
     {
 	for (Node node = root_node.getFirstChild(); node != null; node = node.getNextSibling()) {
Index: /trunk/gli/src/org/greenstone/gatherer/cdm/Plugin.java
===================================================================
--- /trunk/gli/src/org/greenstone/gatherer/cdm/Plugin.java	(revision 12634)
+++ /trunk/gli/src/org/greenstone/gatherer/cdm/Plugin.java	(revision 12635)
@@ -71,5 +71,5 @@
 	String plugin_name = element.getAttribute(StaticStrings.TYPE_ATTRIBUTE);
 	// Determine the base plugin from the plugin name
-	Plugin base_plugin = CollectionDesignManager.plugin_manager.getPlugin(plugin_name, true);
+	Plugin base_plugin = PluginManager.getPlugin(plugin_name, true);
 	Plugin plugin = new Plugin(element, base_plugin);
 	if (base_plugin == null) {
Index: /trunk/gli/src/org/greenstone/gatherer/cdm/PluginManager.java
===================================================================
--- /trunk/gli/src/org/greenstone/gatherer/cdm/PluginManager.java	(revision 12634)
+++ /trunk/gli/src/org/greenstone/gatherer/cdm/PluginManager.java	(revision 12635)
@@ -63,5 +63,5 @@
 {
     // A list of all the plugins in the core Greenstone "perllib/plugins" folder (arguments may not be loaded)
-    private ArrayList core_greenstone_plugins_list = null;
+    static private ArrayList core_greenstone_plugins_list = null;
 
     /** When asking how many rows are in the model, and if this variables value is true, then this modifier alters the number returned. This funtionality is used to hide the last three rows of the list in low detail modes. */
@@ -81,4 +81,9 @@
 	core_greenstone_plugins_list = loadPluginsList();
 
+	// Force the assigned plugins to be loaded and cached now
+	for (int i = 0; i < getSize(); i++) {
+	    getElementAt(i);
+	}
+
 	// Create the separator, cause we can reuse it.
 	separator = getSeparator();
@@ -134,5 +139,5 @@
 
 
-    public Plugin getPlugin(String plugin_name, boolean arguments_required)
+    static public Plugin getPlugin(String plugin_name, boolean arguments_required)
     {
 	for (int i = 0; i < core_greenstone_plugins_list.size(); i++) {
@@ -168,5 +173,5 @@
 
 
-    private void loadPluginInfo(Plugin plugin)
+    static private void loadPluginInfo(Plugin plugin)
     {
 	System.err.println("Loading arguments for " + plugin.getName() + "...");
@@ -254,5 +259,5 @@
 
 
-    private void parsePluginInfoXML(Plugin plugin, String xml)
+    static private void parsePluginInfoXML(Plugin plugin, String xml)
     {
 	Document document = XMLTools.parseXML(new StringReader(xml));
@@ -261,5 +266,5 @@
 
 
-    private void parsePluginInfoXMLNode(Plugin plugin, Node root_node)
+    static private void parsePluginInfoXMLNode(Plugin plugin, Node root_node)
     {
 	for (Node node = root_node.getFirstChild(); node != null; node = node.getNextSibling()) {
