diff --git a/advanced_forum.module b/advanced_forum.module
index 8f02af4..fd25297 100644
--- a/advanced_forum.module
+++ b/advanced_forum.module
@@ -136,6 +136,12 @@ function advanced_forum_theme() {
          'subforum_list' => NULL,
        )
   );
+
+  $items['advanced_forum_subcontainer_list'] = array(
+      'arguments' => array(
+         'subcontainer_list' => NULL,
+       )
+  );
   
   $items['advanced_forum_simple_author_pane'] = array(
       'arguments' => array(
diff --git a/includes/advanced_forum_preprocess_forum_list.inc b/includes/advanced_forum_preprocess_forum_list.inc
index cbecf28..1ba87dd 100644
--- a/includes/advanced_forum_preprocess_forum_list.inc
+++ b/includes/advanced_forum_preprocess_forum_list.inc
@@ -7,181 +7,323 @@
  */
 
 function _advanced_forum_preprocess_forum_list(&$variables) {
+//dsm($variables);
+  // Tell Drupal to use our forum list template file.
+  advanced_forum_add_template_suggestions("forum-list", $variables['template_files']);
+
+  // Add needed items for the collapsible containers.
   $variables['collapsible'] = variable_get('advanced_forum_collapsible_containers', 'toggle');
   if ($variables['collapsible'] != 'none') {
     drupal_add_js(drupal_get_path('module', 'advanced_forum') . '/js/advanced_forum.js','module');
     drupal_add_js(array('advanced_forum' => array('effect' => $variables['collapsible'])), 'setting');
   }
-  advanced_forum_add_template_suggestions("forum-list", $variables['template_files']);
 
-  // Determine if we want to use taxonomy image here so we don't need to keep
-  // checking while in the main loop.
-  $variables['use_taxonomy_image'] = (function_exists('taxonomy_image_display') && variable_get('advanced_forum_use_taxonomy_image', TRUE));
-  
   // The tid is the ID of the container or forum we are in. Assign it to
   // $parent_id for easy reference, assign it to the forum_id template variable
   // to give it a nice name for themers, then get rid of the original variable.
   $parent_id = isset($variables['tid']) ? $variables['tid'] : 0;
   $variables['forum_id'] = $parent_id;
-  unset($variables['tid']);  
+  unset($variables['tid']);
 
-  /* Deal with creating fake containers as necessary. */
-  
-  if (empty($parent_id)) {
-    // At the root /forum listing. Make sure all forums are in containers,
-    // creating fake ones if needed, so the table structure works properly.
-    $main_forum_page = TRUE;
-    $root_forums = FALSE;
-    $fake_container = FALSE;
-    $containers = FALSE;
-    $tids = array();
-    foreach ($variables['forums'] as $id => $forum) {
-      // If uncontained forums come after an existing container, they'll
-      // be put into that container due to the ordering in the template.
-      // So don't bother with a fake container if there won't be anything
-      // in it.
-      if (!empty($forum->container) && !$fake_container) {
-        $containers = TRUE;
-      }
+  // Add a variable showning if we are using taxonomy image for easier theming.
+  $variables['use_taxonomy_image'] = (function_exists('taxonomy_image_display') && variable_get('advanced_forum_use_taxonomy_image', TRUE));
 
-      if (empty($forum->container) && $forum->parents == array(0 => 0)) {
-        // This is a forum, not a container, and it has no parents. ie: forum
-        // at the root outside of any containers.
-        $root_forums = TRUE;
-        if (!$containers) {
-          // No containers come before this forum, even at the same level,
-          // so we need to make a fake container to hold it.
-          $fake_container = TRUE;
-        }
-        $variables['forums'][$id]->depth++;
-        $tids[$forum->tid] = $forum->tid;
-      }
-      
-      // @TODO: Figure out what this does.
-      if ($root_forums && !empty($tids[$forum->parents[0]])) {
-        $variables['forums'][$id]->depth++;
-        $tids[$forum->tid] = $forum->tid;
-      }
+  // Process the containers and forums and move them to a new variable.
+  $items = array();
+  $lowest_depth = 0;
+  foreach ($variables['forums'] as $id => $forum) {
+    if (empty($forum->container)) {
+      $items[$id] = advanced_forum_process_forum($forum);
+    }
+    else {
+      $items[$id] = advanced_forum_process_container($forum);
     }
 
-    if ($fake_container) {
-      // Create the fake container and stick it at the top.
-      $container = taxonomy_vocabulary_load(variable_get('forum_nav_vocabulary', ''));
-      $container->tid = 0;
-      $container->container = TRUE;
-      $container->num_topics = 0;
-      $variables['forums'] = array(0 => $container) + $variables['forums'];
+    // Figure out how deep the hierarchy goes for the next step.
+    if ($forum->depth > $lowest_depth) {
+      $lowest_depth = $forum->depth;
     }
   }
-  else {
-    // On a container or forum page.
-    
-    $main_forum_page = FALSE;
-    // We want to add in the container or use the parent forum as a container.
-    $container = taxonomy_get_term($parent_id);
-    $container->container = TRUE;
-    $container->num_topics = 0;
-
-    // Add in the "container" at the top and bump up the depth of everything
-    // underneath. Note that we can't use array_unshift to add the container
-    // to the top as that changes all the keys.
-    $orginal_forums = $variables['forums'];
-    $variables['forums'] = array();
-    $variables['forums'][$parent_id] = $container;
-    $variables['forums'][$parent_id]->depth = 0;
-    foreach ($orginal_forums as $id => $forum) {
-      $variables['forums'][$id] = $forum;
-      $variables['forums'][$id]->depth++;
+
+  for ($depth = $lowest_depth; $depth > 0; $depth--)
+    foreach ($items as $id => $item) {
+      if ($item->depth == $depth) {
+        $items[$item->parents['0']]->child_total_topics += $item->total_topics + $item->child_total_topics;
+        $items[$item->parents['0']]->child_new_topics += $item->new_topics + $item->child_new_topics;
+        $items[$item->parents['0']]->child_total_posts += $item->total_posts + $item->child_total_posts;
+        $items[$item->parents['0']]->child_new_posts += $item->new_posts + $item->child_new_posts;
     }
   }
- 
-  /* Organize all the forum data into the template variables */
-  
-  global $user;
-  $row = 0;
-  // Sanitize each forum so that the template can safely print the data but skip the name of subforums.
-  foreach ($variables['forums'] as $id => $forum) {
-    $variables['forums'][$id]->description = !empty($forum->description) ? filter_xss_admin($forum->description) : '';
-    $variables['forums'][$id]->link = url("forum/$forum->tid");
-    $variables['forums'][$id]->name = empty($forum->parents[0]) ? check_plain($forum->name) : $forum->name;
-    $variables['forums'][$id]->is_container = !empty($forum->container);
-    $variables['forums'][$id]->zebra = $row % 2 == 0 ? 'odd' : 'even';
-    $row++;
-
-    $variables['forums'][$id]->new_text = '';
-    $variables['forums'][$id]->new_url = '';
-    $variables['forums'][$id]->new_topics = 0;
-    $variables['forums'][$id]->old_topics = $forum->num_topics;
-    if ($user->uid) {
-      $variables['forums'][$id]->new_topics = _forum_topics_unread($forum->tid, $user->uid);
-      if ($variables['forums'][$id]->new_topics) {
-        $variables['forums'][$id]->new_text = format_plural($variables['forums'][$id]->new_topics, '1 new', '@count new');
-        $variables['forums'][$id]->new_url = url("forum/$forum->tid", array('fragment' => 'new'));
-      }
-      $variables['forums'][$id]->old_topics = $forum->num_topics - $variables['forums'][$id]->new_topics;
+
+  // Loop through all the items and fill the $tables variable that will
+  // hold all the tables with the containers and forums organized, processed,
+  // and ready for the template.
+
+  if ($parent_id) {
+    // On a container page. Fake the main table.
+    $table_counter = 1;
+    $tables[$table_counter]['table_info'] = advanced_forum_process_container($variables['parents'][0]);
+  }
+  else {
+    $table_counter = 0;
+  }
+
+  foreach ($items as $id => $item) {
+    // Get a handle on the parent of this item.
+    if ($parent_id && $item->depth == 0) {
+      // If we are on a container page, the parent of root items is the main
+      // container that is being used for the table info.
+      $parent = $tables[$table_counter]['table_info'];
     }
+    elseif (!empty($variables['forums'][$item->parents[0]])) {
+      // For simplicity, we assume forums/containers have only one parent.
+      $parent = $variables['forums'][$item->parents[0]];
+    }
+    // Intentional no "else" because only root items on the main page have
+    // no parent and we don't use the variable there.
 
-    // Avoid notices if there is no last post.
-    $forum->last_post = (empty($forum->last_post)) ? '' : $forum->last_post;
-    $variables['forums'][$id]->last_reply = theme('forum_submitted', $forum->last_post);
+    // If we aren't on the main forum page, we need to bump up the depth.
+    $item_depth = ($parent_id) ? $item->depth + 1 : $item->depth;
 
-    $variables['forums'][$id]->new_posts = 0;
-    $variables['forums'][$id]->new_text_posts = '';
-    $variables['forums'][$id]->new_url_posts = '';
-    $variables['forums'][$id]->old_posts = (empty($forum->num_posts)) ? '' : $forum->num_posts;
+    if (!empty($item->container)) {
+      // CONTAINERS.
 
-    if ($user->uid) {
-      // Show number of new posts as well as topics
-      if (variable_get('advanced_forum_get_new_comments', 0)) {
-        // This can cause performance issues, so allow it to be turned off
-        $variables['forums'][$id]->new_posts = advanced_forum_unread_replies_in_forum($forum->tid, $user->uid) + $variables['forums'][$id]->new_topics;
+      if ($item_depth == 0) {
+        // Top level container always starts a new table.
+        $table_counter++;
+        $tables[$table_counter]['table_info'] = $item;
 
-        if ($variables['forums'][$id]->new_posts) {
-          $variables['forums'][$id]->new_text_posts = format_plural($variables['forums'][$id]->new_posts, '1 new', '@count new');
-          $variables['forums'][$id]->new_url_posts = url("forum/$forum->tid", array('fragment' => 'new'));
-        }
+        // Reset the striping.
+        advanced_forum_stripe(TRUE);
+      }
+      elseif ($item_depth == 1) {
+        // Subcontainer at top level is treated like a forum.
 
-        if (isset($forum->num_posts)) {
-          $variables['forums'][$id]->old_posts = $forum->num_posts - $variables['forums'][$id]->new_posts;
+        // We set the forum icon here, rather than in the process_forum
+        // function because we need to take into account new content
+        // in children.
+        if ($item->new_topics || $item->new_posts || $item->child_new_topics || $item->child_new_posts) {
+          $item->icon_classes = "forum-list-icon forum-list-icon-new-posts";
+          $item->icon_text = t("New posts");
+        }
+        else {
+          $item->icon_classes = "forum-list-icon forum-list-icon-default";
+          $item->icon_text = t("No new");
         }
-      }
-    }
 
-    // If there are new topics/posts, change the icon
-    if ($forum->new_topics || $forum->new_posts) {
-      $variables['forums'][$id]->icon_classes = "forum-list-icon forum-list-icon-new-posts";
-      $variables['forums'][$id]->icon_text = t("New posts");
+        // Set the variable to control the row striping.
+        $item->zebra = advanced_forum_stripe();
+        
+        // Add the container info to the table's item list.
+        $tables[$table_counter]['items'][$id] = $item;
+      }
+      elseif ($item_depth == 2) {
+        // A container elsewhere gets added to the parent's subcontainer list.
+        $tables[$table_counter]['items'][$parent->tid]->subcontainer_list[$id] = $item;
+      }
     }
     else {
-      $variables['forums'][$id]->icon_classes = "forum-list-icon forum-list-icon-default";
-      $variables['forums'][$id]->icon_text = t("No new");
-    }
+      // FORUMS.
 
-    // Add in the taxonomy image, if any
-    if ($variables['use_taxonomy_image']) {
-      $variables['forums'][$id]->forum_image = taxonomy_image_display($forum->tid);
+      // We set the forum icon here, rather than in the process_forum
+      // function because we need to take into account new content
+      // in children.
+      if ($item->new_topics || $item->new_posts || $item->child_new_topics || $item->child_new_posts) {
+        $item->icon_classes = "forum-list-icon forum-list-icon-new-posts";
+        $item->icon_text = t("New posts");
+      }
+      else {
+        $item->icon_classes = "forum-list-icon forum-list-icon-default";
+        $item->icon_text = t("No new");
+      }
+      
+      if ($item_depth == 0) {
+        // This is a forum at the root. If it is the first or the first
+        // since the last container, make a new table. Otherwise, put it in
+        // the previous table.
+        if (empty($table_counter) || !empty($tables[$table_counter]['table_info']->container)) {
+          // This is the first root item or the current table belongs to a
+          // container. Start a new generic one. We need a tid so just grab
+          // the tid of the current forum for it.
+          $table_counter++;
+          $tables[$table_counter]['table_info']->name = t('Forums');
+          $tables[$table_counter]['table_info']->description = '';
+          $tables[$table_counter]['table_info']->tid = $item->tid;
+
+          // Reset the striping.
+          advanced_forum_stripe(TRUE);
+        }
+
+        // Set the variable to control the row striping.
+        $item->zebra = advanced_forum_stripe();
+        
+        // Add the forum info to the table's item list.
+        $tables[$table_counter]['items'][$id] = $item;
+      }
+      elseif ($item_depth == 1) {
+        // Main forum. Add it to the item list.
+        if (empty($item->container)) {
+          $item->zebra = advanced_forum_stripe();
+        }
+
+        $tables[$table_counter]['items'][$id] = $item;
+      }
+      elseif ($item_depth == 2) {
+        // Subforum.
+        $tables[$table_counter]['items'][$parent->tid]->subforum_list[$id] = $item;
+      }
     }
+  }
+
+  // Theme subcontainers, subforums and add post counts to parents.
+  foreach ($tables as $table_id => $table) {
+    foreach ($table['items'] as $item_id => $item) {
+      if (!empty($item->subforum_list)) {
+        $tables[$table_id]['items'][$item_id]->subforums = theme('advanced_forum_subforum_list', $item->subforum_list);
+      }
 
-    if ($variables['forums'][$id]->depth > 1) {
-      // This is a subforum. Add it to the list for the compact listing.
-      $parent_id = $id;
-      for ($count = $variables['forums'][$id]->depth; $count > 1; $count--) {
-        $parent_id = $variables['forums'][$parent_id]->parents['0'];
+      if (!empty($item->subcontainer_list)) {
+        $tables[$table_id]['items'][$item_id]->subcontainers = theme('advanced_forum_subcontainer_list', $item->subcontainer_list);
       }
-      $variables['forums'][$parent_id]->subforum_list[$id] = $variables['forums'][$id];
     }
   }
+  
+  $variables['tables'] = $tables;
 
-  foreach ($variables['forums'] as $id => $forum) {
-    if (!empty($forum->subforum_list)) {
-      $variables['forums'][$id]->subforums = theme('advanced_forum_subforum_list', $forum->subforum_list);
-      unset($variables['forums'][$id]->subforum_list);
+  // Remove unneeded variables.
+  unset($variables['zebra']);
+  unset($variables['forums']);
+
+ // dsm($variables);
+}
+
+
+function advanced_forum_stripe($reset = FALSE) {
+  static $stripe = 'odd';
+
+  if ($reset) {
+    $stripe = 'odd';
+  }
+  else {
+    $stripe = ($stripe == 'odd') ? 'even' : 'odd';
+  }
+
+  return $stripe;
+}
+
+/**
+ * Prepare an individual container for display.
+ */
+function advanced_forum_process_container($container) {
+  // Create the link to the container.
+  $container->link = url("forum/$container->tid");
+
+  // Sanitise the name and description so they can be safely printed.
+  $container->name = check_plain($container->name);
+  $container->description = !empty($container->description) ? filter_xss_admin($container->description) : '';
+
+  // Create a variable to check if the item is a container in the template.
+  $container->is_container = TRUE;
+
+  // @TODO: Make the icon change if subforums have posts.
+  $container->icon_classes = "forum-list-icon forum-list-icon-default";
+  $container->icon_text = t("No new");
+
+  // Add in the taxonomy image, if any.
+  if (function_exists('taxonomy_image_display') && variable_get('advanced_forum_use_taxonomy_image', TRUE)) {
+    $container->forum_image = taxonomy_image_display($container->tid);
+  }
+
+  // Initialize these variables to avoid notices later.
+  $container->total_topics = 0;
+  $container->new_topics = 0;
+  $container->total_posts = 0;
+  $container->new_posts = 0;
+  $container->child_total_topics = 0;
+  $container->child_new_topics = 0;
+  $container->child_total_posts = 0;
+  $container->child_new_posts = 0;
+
+  return $container;
+}
+
+/**
+ * Prepare an individual forum for display.
+ */
+function advanced_forum_process_forum($forum) {
+  // Create a variable to check if the item is a container in the template.
+  $forum->is_container = FALSE;
+
+  // Create the link to the forum.
+  $forum->link = url("forum/$forum->tid");
+
+  // Sanitise the name and description so they can be safely printed.
+  // We don't do this for subforum names because that is sent through l()
+  // in the theme function which runs it through check_plain().
+  $forum->name = empty($forum->parents[0]) ? check_plain($forum->name) : $forum->name;
+  $forum->description = !empty($forum->description) ? filter_xss_admin($forum->description) : '';
+
+  // Initialize these variables to avoid notices later since not all forums
+  // have new content or even any content at all.
+  $forum->total_topics = 0;
+  $forum->child_total_topics = 0;
+  
+  $forum->new_topics = 0;
+  $forum->new_topics_text = '';
+  $forum->new_topics_link = '';
+  $forum->child_new_topics = 0;
+  
+  $forum->total_posts = 0;
+  $forum->child_total_posts = 0;
+  
+  $forum->new_posts = 0;
+  $forum->new_posts_text = '';
+  $forum->new_posts_link = '';
+  $forum->child_new_posts = 0;
+
+  // Rename these to make them more descriptive.
+  if (isset($forum->num_topics)) {
+    $forum->total_topics = $forum->num_topics;
+    unset ($forum->num_topics);
+  }
+  
+  if (isset($forum->num_posts)) {
+    $forum->total_posts = $forum->num_posts;
+    unset ($forum->num_posts);
+  }
+
+  // If the viewer is authenticated, check for new topics and posts.
+  global $user;
+  if ($user->uid) { 
+    // New topics.
+    $forum->new_topics = _forum_topics_unread($forum->tid, $user->uid);
+    if ($forum->new_topics) {
+      $forum->new_topics_text = format_plural($forum->new_topics, '1 new', '@count new');
+      $forum->new_topics_link = url("forum/$forum->tid", array('fragment' => 'new'));
     }
 
-    if(!empty($forum->parents[0])){
-	  // Sanitize the subforums.
-      $variables['forums'][$id]->name  = check_plain($forum->name);
+    // New posts are optional because the query is slow.
+    if (variable_get('advanced_forum_get_new_comments', 0)) {
+      $forum->new_posts = advanced_forum_unread_replies_in_forum($forum->tid, $user->uid) + $forum->new_topics;
+
+      if ($forum->new_posts) {
+        $forum->new_posts_text = format_plural($forum->new_posts, '1 new', '@count new');
+        $forum->new_posts_link = url("forum/$forum->tid", array('fragment' => 'new'));
+      }
     }
   }
 
+  // Process the "last post" object into a printable string.
+  // Trying to copy the string back into the variable directly caused odd bugs
+  // so we move it to a temp variable then unset the original.
+  $last_post = (empty($forum->last_post)) ? '' : $forum->last_post;
+  unset($forum->last_post);
+  $forum->last_post = theme('forum_submitted', $last_post);
+
+  // Add in the taxonomy image, if any
+  if (function_exists('taxonomy_image_display') && variable_get('advanced_forum_use_taxonomy_image', TRUE)) {
+    $forum->forum_image = taxonomy_image_display($forum->tid);
+  }
+
+  return $forum;
 }
diff --git a/includes/theme.inc b/includes/theme.inc
index 8145ee4..5cf1024 100644
--- a/includes/theme.inc
+++ b/includes/theme.inc
@@ -163,12 +163,56 @@ function theme_advanced_forum_shadow_topic($title, $nid, $new_forum) {
 function theme_advanced_forum_subforum_list($subforum_list) {
   $subforums = array();
   foreach($subforum_list AS $tid => $subforum) {
-    $subforums[] = l($subforum->name, "forum/$tid");
+    // Note: $subforum->name has not been run through check_plain because
+    // it ends up going through there when l() is called without the HTML
+    // option. If you change this to set HTML to TRUE, you must sanitize it.
+    $text = l($subforum->name, "forum/$tid");
+    $text .=  ' (' . $subforum->total_posts;
+    
+    if (empty($subforum->new_posts)) {
+      $text .= ')';
+    }
+    else {
+      $text .= ' - ' . l($subforum->new_posts_text, $subforum->new_posts_link) . ')'; 
+    }
+    
+    $subforums[] = $text;
   }
 
   return implode(', ', $subforums);
 }
 
+/**
+ * Theme function to a formatted list of subcontainers.
+ *
+ * @param $subcontainer_list
+ *   Array of subcontainers.
+ * @return
+ *   Formatted list of subcontainers.
+ */
+function theme_advanced_forum_subcontainer_list($subcontainer_list) {
+  $subcontainers = array();
+  foreach($subcontainer_list AS $tid => $subcontainer) {
+    // Note: $subcontainer->name has not been run through check_plain because
+    // it ends up going through there when l() is called without the HTML
+    // option. If you change this to set HTML to TRUE, you must sanitize it.
+    $text = l($subcontainer->name, "container/$tid");
+    $text .=  ' (' . $subcontainer->total_posts;
+    
+    if (empty($subcontainer->new_posts)) {
+      $text .= ')';
+    }
+    else {
+      $text .= ' - ' . l($subforum->new_posts_text, $subforum->new_posts_link) . ')';  
+    }
+    
+    $subcontainers[] = $text;
+  }
+
+  return implode(', ', $subcontainers);
+}
+
+
 // TEMPLATE PREPROCESS ******************************************************/
 
 /*** FORUM OVERVIEW & TOPIC LIST PAGES **************************************/
diff --git a/plugins/arguments/forum_id.inc b/plugins/arguments/forum_id.inc
index fc0bba5..02c14ff 100644
--- a/plugins/arguments/forum_id.inc
+++ b/plugins/arguments/forum_id.inc
@@ -84,7 +84,7 @@ function advanced_forum_forum_id_breadcrumb($conf, $context) {
     $breadcrumb[] = l($vocabulary->name, 'forum');
   }
 
-  if ($context->parents) {
+  if (isset($context->parents)) {
     $parents = array_reverse($context->parents);
     foreach ($parents as $p) {
       if ($p->tid != $context->data->tid) {
diff --git a/plugins/content_types/forum_list.inc b/plugins/content_types/forum_list.inc
index 4e86e8c..c41cf6d 100644
--- a/plugins/content_types/forum_list.inc
+++ b/plugins/content_types/forum_list.inc
@@ -39,7 +39,10 @@ function advanced_forum_forum_list_content_type_render($subtype, $conf, $panel_a
   $forums = advanced_forum_get_forums($tid);
 
   if ($forums) {
-    $block->content = theme('forum_list', $forums, $context->parents, $tid);
+    // No parents on the main forum page.
+    $parents = isset($context->parents) ? $context->parents : array();
+    
+    $block->content = theme('forum_list', $forums, $parents, $tid);
 
     if (user_access('administer forums')) {
       $block->admin_links['administer_forums'] = array(
diff --git a/styles/blue_lagoon/advanced_forum.blue_lagoon.style.css b/styles/blue_lagoon/advanced_forum.blue_lagoon.style.css
index 9996719..d33776d 100755
--- a/styles/blue_lagoon/advanced_forum.blue_lagoon.style.css
+++ b/styles/blue_lagoon/advanced_forum.blue_lagoon.style.css
@@ -45,12 +45,14 @@ Colors used: (copied from silver bells... need to update)
 /*** FORUM & TOPIC LIST ******************************************************/
 
 /* General */
-.forum-table {
+.forum-table-wrap,
+.forum-table-topics {
   border: 3px solid #1659AC;
 }
 
 /* Headers */
-.forum-table thead tr {
+.forum-table-wrap .forum-table-superheader,
+.forum-table-topics thead tr  {
   border-top: 1px solid #1659AC;
   background: #2587C4;
   background: -webkit-gradient(linear, left top, left bottom, from(#2587C4), to(#58B3ED));
@@ -59,6 +61,10 @@ Colors used: (copied from silver bells... need to update)
   border-bottom: 1px solid #1659AC;
 }
 
+.forum-table-wrap thead tr {
+  background-color: #F5F5F5;
+}
+
 .forum-table thead tr a,
 .forum-table thead tr a:visited,
 .forum-table thead tr a:link {
@@ -91,6 +97,10 @@ Colors used: (copied from silver bells... need to update)
   font-weight: bold;
 }
 
+.forum-table td {
+  border: none;
+}
+
 /*** FORUM STATISTICS *******************************************************/
 
 #forum-statistics {
diff --git a/styles/naked/advanced_forum.naked.forum-list.tpl.php b/styles/naked/advanced_forum.naked.forum-list.tpl.php
index 6267a40..389e441 100644
--- a/styles/naked/advanced_forum.naked.forum-list.tpl.php
+++ b/styles/naked/advanced_forum.naked.forum-list.tpl.php
@@ -22,7 +22,7 @@
  * - $forum->new_url: A URL to the forum's unread posts.
  * - $forum->new_text: Text for the above URL which tells how many new posts.
  * - $forum->old_topics: A count of posts that have already been read.
- * - $forum->num_posts: The total number of posts in the forum.
+ * - $forum->total_posts: The total number of posts in the forum.
  * - $forum->last_reply: Text representing the last time a forum was posted or
  *   commented in.
  *
@@ -31,102 +31,125 @@
  */
 ?>
 
-<?php $container_number = 0 ?>
+<?php
+/*
+The $tables variable holds the individual tables to be shown. A table is
+either created from a root level container or added as needed to hold root
+level forums. The following code will loop through each of the tables.
+In each table, it loops through the items in the table. These items may be
+subcontainers or forums. Subcontainers are printed simply with the name
+spanning the entire table. Forums are printed out in more detail. Subforums
+have already been attached to their parent forums in the preprocessing code
+and will display under their parents.
+*/
+?>
 
-<?php foreach ($forums as $forum_id => $forum): ?>
+<?php foreach ($tables as $table_id => $table): ?>
+  <?php $table_info = $table['table_info']; ?>
   
-  <?php if ($forum->is_container): ?> <?php // *** Start container row *** ?>
-    <?php $container_number++ ?>
+  <div class="forum-table-wrap">
+    <div class="forum-table-superheader">
+      <div class="forum-table-name">
+        <?php if (empty($table_info->link)): ?>
+          <?php print$table_info->name; ?>
+        <?php else: ?>
+          <a href="<?php print $table_info->link; ?>"><?php print$table_info->name; ?></a>
+        <?php endif; ?>
+      </div>
+      
+      <?php if ($collapsible): ?>
+        <span id="forum-collapsible-<?php print $table_info->tid; ?>" class="advanced-forum-toggle">&nbsp;</span>
+      <?php endif; ?>
+      
+      <div class="forum-table-description"><?php print $table_info->description; ?></div>
+    </div>
     
-    <?php if ($container_number > 1): ?>
-      </tbody></table>
-    <?php endif; ?>
-
-    <table id="container-<?php print $container_number; ?>" class="forum-table forum-table-forums">
+    <table id="forum-table-<?php print $table_info->tid; ?>" class="forum-table forum-table-forums">
       <thead class="forum-header">
         <tr>
-          <th colspan="<?php print ($use_taxonomy_image ? 3 : 2) ?>" class="forum-name">
-            <a href="<?php print $forum->link; ?>"><?php print $forum->name; ?></a>
-          </th>
-
+          <th class="forum-icon"><?php print t('Icon');?></th>
+          <th class="forum-name"><?php print t('Forum');?></th>
           <th class="forum-number-topics"><?php print t('Topics');?></th>
           <th class="forum-posts"><?php print t('Posts'); ?></th>
-          <th class="forum-last-post">
-            <?php print t('Last post'); ?>
-            <?php if ($collapsible): ?>
-              <span id="forum-collapsible-<?php print $forum_id;?>" class="advanced-forum-toggle">&nbsp;</span>
-            <?php endif; ?>
-          </th>
+          <th class="forum-last-post"><?php print t('Last post'); ?></th>
         </tr>
       </thead>
 
-      <tbody id="container-<?php print $container_number; ?>-content">
-        <?php if ($forum->description): ?>
-          <tr class="container-description">
-            <td colspan="<?php print ($use_taxonomy_image ? 6 : 5) ?>">
-              <?php print $forum->description; ?>
-            </td>
-          </tr>
-        <?php endif; ?>
- 
-  <?php else: ?> <?php // *** Start forum row *** ?>
-    <?php if ($forum->depth == 1): ?>
-    
-      <tr id="forum-<?php print $forum_id; ?>" class="forum-row <?php print $forum->zebra; ?>  container-<?php print $forum_id; ?>-child">
+      <tbody id="forum-table-<?php print $table_info->tid; ?>-content"> 
+      
+        <?php foreach ($table['items'] as $item_id => $item): ?> 
         
-        <td class="<?php print $forum->icon_classes ?>">
-          <span class="forum-list-icon-wrapper"><span><?php print $forum->icon_text ?></span></span>
-        </td>
-
-        <?php if ($use_taxonomy_image): ?>
-          <td class="forum-image-<?php print $forum_id; ?>">
-            <?php print $forum->forum_image; ?>
+          <?php if ($item->is_container): ?>
+            <tr id="subcontainer-<?php print $item_id; ?>" class="forum-row <?php print $item->zebra; ?>  class="container-<?php print $item_id; ?>-child">          
+          <?php else: ?>
+            <tr id="forum-<?php print $item_id; ?>" class="forum-row <?php print $item->zebra; ?>  class="container-<?php print $item_id; ?>-child">
+          <?php endif; ?>
+          
+          <td class="<?php print $item->icon_classes ?>">
+            <span class="forum-list-icon-wrapper"><span><?php print $item->icon_text ?></span></span>
           </td>
-        <?php endif; ?>
 
-        <td class="forum-details">
-          <div class="forum-name">
-            <a href="<?php print $forum->link; ?>"><?php print $forum->name; ?></a>
-          </div>
-          
-          <?php if (!empty($forum->description)): ?>
-            <div class="forum-description">
-              <?php print $forum->description; ?>
-            </div>
+          <?php if ($use_taxonomy_image): ?>
+            <td class="forum-image-<?php print $item_id; ?>">
+              <?php print $item->forum_image; ?>
+            </td>
           <?php endif; ?>
-
-          <?php if (!empty($forum->subforums)): ?>
-            <div class="forum-subforums">
-              <span class="forum-subforums-label"><?php print t("Subforums") ?>:</span> <?php print $forum->subforums; ?>
+              
+          <?php $colspan = ($item->is_container) ? 4 : 1 ?>
+          
+          <td class="forum-details" colspan="<?php print $colspan ?>">           
+            <div class="forum-name">
+              <a href="<?php print $item->link; ?>"><?php print $item->name; ?></a>
             </div>
-          <?php endif; ?>
-        </td>
+            
+            <?php if (!empty($item->description)): ?>
+              <div class="forum-description">
+                <?php print $item->description; ?>
+              </div>
+            <?php endif; ?>
 
-        <td class="forum-number-topics">
-          <div class="forum-number-topics"><?php print $forum->num_topics ?>
-            <?php if ($forum->new_topics): ?>
-              <div class="forum-number-new-topics">
-                <a href="<?php print $forum->new_url; ?>"><?php print $forum->new_text; ?></a>
+            <?php if (!empty($item->subcontainers)): ?>
+              <div class="forum-subcontainers">
+                <span class="forum-subcontainers-label"><?php print t("Subcontainers") ?>:</span> <?php print $item->subcontainers; ?>
+              </div>
+            <?php endif; ?>
+            
+            <?php if (!empty($item->subforums)): ?>
+              <div class="forum-subforums">
+                <span class="forum-subforums-label"><?php print t("Subforums") ?>:</span> <?php print $item->subforums; ?>
               </div>
             <?php endif; ?>
-          </div>
-        </td>
+          </td>
 
-        <td class="forum-number-posts">
-          <?php print $forum->num_posts ?>
-          
-          <?php if ($forum->new_posts): ?>
-              <br />
-              <a href="<?php print $forum->new_url_posts; ?>"><?php print $forum->new_text_posts; ?></a>
-          <?php endif; ?>
-        </td>
+          <?php if (!$item->is_container): ?>
+              <td class="forum-number-topics">
+                <div class="forum-number-topics"><?php print $item->total_topics ?>
+                  <?php if ($item->new_topics): ?>
+                    <div class="forum-number-new-topics">
+                      <a href="<?php print $item->new_topics_link; ?>"><?php print $item->new_topics_text; ?></a>
+                    </div>
+                  <?php endif; ?>
+                </div>
+              </td>
+
+              <td class="forum-number-posts">
+                <?php print $item->total_posts ?>
+                
+                <?php if ($item->new_posts): ?>
+                    <br />
+                    <a href="<?php print $item->new_posts_link; ?>"><?php print $item->new_posts_text; ?></a>
+                <?php endif; ?>
+              </td>
 
-        <td class="forum-last-reply">
-          <?php print $forum->last_reply ?>
-        </td>
-      </tr>
-    <?php endif; ?>
-  <?php endif; ?>
+              <td class="forum-last-reply">
+                <?php print $item->last_post ?>
+              </td>
+            <?php endif; ?>
+              
+          </tr>
+          
+       <?php endforeach; ?>
+    </tbody>
+  </table>
+</div>
 <?php endforeach; ?>
-  </tbody>
-</table>
diff --git a/styles/naked/advanced_forum.naked.images.css b/styles/naked/advanced_forum.naked.images.css
index 327ab6e..d8cecb8 100644
--- a/styles/naked/advanced_forum.naked.images.css
+++ b/styles/naked/advanced_forum.naked.images.css
@@ -94,6 +94,7 @@ span.advanced-forum-toggle {
   text-indent: -9999px;
   display: block;
   margin-left: 10px;
+  margin-right: 10px;
   float: right;
   cursor: pointer;
   background: transparent url(images/container_collapse.png) no-repeat center center;
diff --git a/styles/naked/advanced_forum.naked.structure.css b/styles/naked/advanced_forum.naked.structure.css
index cb10e65..3aa2a60 100644
--- a/styles/naked/advanced_forum.naked.structure.css
+++ b/styles/naked/advanced_forum.naked.structure.css
@@ -68,8 +68,28 @@ ul.forum-links li {
 /*** FORUM & TOPIC LIST TABLES **********************************************/
 
 .forum-table {
+ margin: 0px;
+}
+
+.forum-table-wrap,
+.forum-table-topics {
+  margin-bottom: 15px;
   clear: both;
-  width: 100%;
+}
+
+.forum-table-superheader {
+}
+
+.forum-table-superheader .forum-table-name {
+  margin: 5px 0 3px 5px;
+  width: 90%;
+  display: inline;
+  font-size: 1.2em;
+}
+
+.forum-table-superheader .forum-table-description {
+  margin: 0 0 3px 5px;
+  width: 90%;
 }
 
 /* Header, both tables */
@@ -87,8 +107,8 @@ td.forum-details .forum-description {
 }
 
 td.forum-details .forum-subforums,
-td.forum-details .forum-subforums a {
-  padding-left: 10px;
+td.forum-details .forum-subcontainers {
+  margin-left: 10px;
 }
 
 td.forum-number-topics,
@@ -96,6 +116,10 @@ td.forum-number-posts {
   text-align: center;
 }
 
+th.forum-icon {
+ width: 5%;
+}
+
 th.forum-number-topics,
 th.forum-posts {
   width: 10%;
diff --git a/styles/silver_bells/advanced_forum.silver_bells.style.css b/styles/silver_bells/advanced_forum.silver_bells.style.css
index 0602850..48412a9 100644
--- a/styles/silver_bells/advanced_forum.silver_bells.style.css
+++ b/styles/silver_bells/advanced_forum.silver_bells.style.css
@@ -63,12 +63,14 @@ Colors used:
 /*** FORUM & TOPIC LIST ******************************************************/
 
 /* General */
-.forum-table {
+.forum-table-wrap,
+.forum-table-topics {
   border: 1px solid #C1C1C1;
 }
 
 /* Headers */
-.forum-table thead tr {
+.forum-table-wrap .forum-table-superheader,
+.forum-table-topics thead tr  {
   border-top: 1px solid #C1C1C1;
   background: #DDDDDD;
   background: -webkit-gradient(linear, left top, left bottom, from(#F5F5F5), to(#DDDDDD));
@@ -78,6 +80,14 @@ Colors used:
   border-bottom: none;
 }
 
+.forum-table-wrap thead tr {
+  background-color: #F5F5F5;
+}
+
+.forum-table-wrap .container-name {
+  font-weight: bold;
+}
+
 .forum-table thead tr a,
 .forum-table thead tr a:visited,
 .forum-table thead tr a:link {
