Index: /gsdl/trunk/src/recpt/dynamicclassifieraction.cpp
===================================================================
--- /gsdl/trunk/src/recpt/dynamicclassifieraction.cpp	(revision 16047)
+++ /gsdl/trunk/src/recpt/dynamicclassifieraction.cpp	(revision 16048)
@@ -165,8 +165,10 @@
   }
 
+  // Simple case for the top-level nodes
   if (args["dcn"] == selected_grouping_node_OID)
   {
-    // Simple case for the top-level page
-    output_top_level_page (classifier_options, args, collectproto, browsers, disp, outconvert, textout, logout);
+    text_t classifier_node_OID = selected_grouping_node_OID;
+    text_t metadata_value_filter = selected_grouping_node_OID + "*";
+    output_top_level_nodes (classifier_node_OID, metadata_value_filter, classifier_options, args, collectproto, browsers, disp, outconvert, textout, logout);
   }
   else
@@ -292,13 +294,14 @@
 
 
-void dynamicclassifieraction::output_top_level_page (text_tmap classifier_options, cgiargsclass &args,
-						     recptproto *collectproto, browsermapclass *browsers,
-						     displayclass &disp, outconvertclass &outconvert,
-						     ostream &textout, ostream &logout)
+void dynamicclassifieraction::output_top_level_nodes (text_t classifier_node_OID, text_t metadata_value_filter,
+						      text_tmap classifier_options, cgiargsclass &args,
+						      recptproto *collectproto, browsermapclass *browsers,
+						      displayclass &disp, outconvertclass &outconvert,
+						      ostream &textout, ostream &logout)
 {
   // Get all the metadata values for the specified element (these become the classifier nodes at the top level)
   text_t metadata_element_name = classifier_options["metadata_element_name"];
   FilterResponse_t metadata_values_response;
-  bool request_success = get_metadata_values (metadata_element_name, "", "", args["c"], collectproto, metadata_values_response, logout);
+  bool request_success = get_metadata_values (metadata_element_name, metadata_value_filter, "", args["c"], collectproto, metadata_values_response, logout);
 
   // If the request failed then it's probably because the collection isn't using an SQL infodbtype
@@ -309,16 +312,16 @@
   }
 
-  // After processing any hierarchical metadata values, we're left with the top-level classifer nodes
-  map<text_t, int, lttext_t> classifier_nodes = process_metadata_values (classifier_options, metadata_values_response.docInfo);
-
-  // Display the top-level classifier nodes
-  map<text_t, int, lttext_t>::iterator classifier_nodes_iterator = classifier_nodes.begin();
-  while (classifier_nodes_iterator != classifier_nodes.end())
-  {
-    text_t classifier_node_OID = (*classifier_nodes_iterator).first;
-    text_t classifier_node_label = (*classifier_nodes_iterator).first;
-    int classifier_node_numleafdocs = (*classifier_nodes_iterator).second;
-    output_classifier_node (classifier_node_OID, classifier_node_label, classifier_node_numleafdocs, 0, args, collectproto, browsers, disp, outconvert, textout, logout);
-    classifier_nodes_iterator++;
+  // After processing any hierarchical metadata values, we're left with the child classifer nodes
+  map<text_t, int, lttext_t> child_classifier_nodes = process_metadata_values (classifier_options, metadata_values_response.docInfo);
+
+  // Display the child classifier nodes
+  map<text_t, int, lttext_t>::iterator child_classifier_nodes_iterator = child_classifier_nodes.begin();
+  while (child_classifier_nodes_iterator != child_classifier_nodes.end())
+  {
+    text_t child_classifier_node_OID = (*child_classifier_nodes_iterator).first;
+    text_t child_classifier_node_label = (*child_classifier_nodes_iterator).first;
+    int child_classifier_node_numleafdocs = (*child_classifier_nodes_iterator).second;
+    output_classifier_node (child_classifier_node_OID, child_classifier_node_label, child_classifier_node_numleafdocs, 0, args, collectproto, browsers, disp, outconvert, textout, logout);
+    child_classifier_nodes_iterator++;
   }
 }
Index: /gsdl/trunk/src/recpt/dynamicclassifieraction.h
===================================================================
--- /gsdl/trunk/src/recpt/dynamicclassifieraction.h	(revision 16047)
+++ /gsdl/trunk/src/recpt/dynamicclassifieraction.h	(revision 16048)
@@ -70,8 +70,9 @@
 				ostream &textout, ostream &logout);
 
-  void output_top_level_page (text_tmap classifier_options, cgiargsclass &args,
-			      recptproto *collectproto, browsermapclass *browsers,
-			      displayclass &disp, outconvertclass &outconvert,
-			      ostream &textout, ostream &logout);
+  void output_top_level_nodes (text_t classifier_node_OID, text_t metadata_value_filter,
+			       text_tmap classifier_options, cgiargsclass &args,
+			       recptproto *collectproto, browsermapclass *browsers,
+			       displayclass &disp, outconvertclass &outconvert,
+			       ostream &textout, ostream &logout);
 
   void output_internal_page (text_tmap classifier_options, cgiargsclass &args,
