diff -urp --strip-trailing-cr ../category-orig/category_display/category_display.module ./category_display/category_display.module
--- ../category-orig/category_display/category_display.module	2009-02-07 10:01:16.000000000 +0100
+++ ./category_display/category_display.module	2009-05-08 14:44:49.000000000 +0200
@@ -626,7 +626,7 @@ function _category_display_children_redu
       }
       else {
         if (!empty($tree[$key]['below'])) {
-          $new_tree = _category_display_children_reduce($tree[$key]['below'], $book_link, $category_display, TRUE);
+          $new_tree += _category_display_children_reduce($tree[$key]['below'], $book_link, $category_display, TRUE);
         }
       }
     }
@@ -655,7 +655,7 @@ function _category_display_children_prun
         $matches = array();
         preg_match('/^node\/(\d+)$/', $tree[$key]['link']['link_path'], $matches);
         if (!empty($matches[1]) && $type = db_result(db_query("SELECT type FROM {node} WHERE nid = %d", $matches[1]))) {
-          if (db_result(db_query("SELECT n.nid FROM {node} n INNER JOIN {category_node} cn ON n.nid = cn.nid WHERE n.type = '%s'", $type))) {
+          if ($type != 'category' && $type != 'container' && db_result(db_query("SELECT n.nid FROM {node} n INNER JOIN {category_node} cn ON n.nid = cn.nid WHERE n.type = '%s'", $type))) {
             $include_link = FALSE;
           }
         }
