--- ../orig.modules/book.module	2005-08-04 10:30:15.184078888 -0700
+++ book.module	2005-08-04 10:38:38.715530472 -0700
@@ -509,6 +509,17 @@
   return $node;
 }
 
+/**
+ * Themes a menu navigation item.
+ *
+ * @ingroup themeable
+ */
+function theme_book_menu_item($nid, $title, $children = '', $leaf = TRUE) {
+
+  return '<li class="'. ($leaf ? 'leaf' : ($children ? 'expanded' : 'collapsed')) .'">'. l($title, 'node/'. $nid) . $children ."</li>\n";
+
+}
+
 function book_toc_recurse($nid, $indent, $toc, $children, $exclude) {
   if ($children[$nid]) {
     foreach ($children[$nid] as $foo => $node) {
@@ -551,21 +562,18 @@
       foreach ($children[$nid] as $foo => $node) {
         if (in_array($node->nid, $unfold)) {
           if ($tree = book_tree_recurse($node->nid, $depth - 1, $children, $unfold)) {
-            $output .= '<li class="expanded">';
-            $output .= l($node->title, 'node/'. $node->nid);
-            $output .= '<ul>'. $tree .'</ul>';
-            $output .= '</li>';
-          }
+			$output .= theme('book_menu_item', $node->nid, $node->title, '<ul>'. $tree .'</ul>', false);
+          } 
           else {
-            $output .= '<li class="leaf">'. l($node->title, 'node/'. $node->nid) .'</li>';
+  			$output .= theme('book_menu_item', $node->nid, $node->title, '', true);
           }
         }
         else {
           if ($tree = book_tree_recurse($node->nid, 1, $children)) {
-            $output .= '<li class="collapsed">'. l($node->title, 'node/'. $node->nid) .'</li>';
+			$output .= theme('book_menu_item', $node->nid, $node->title, '', false);
           }
           else {
-            $output .= '<li class="leaf">'. l($node->title, 'node/'. $node->nid) .'</li>';
+			$output .= theme('book_menu_item', $node->nid, $node->title, '', true);
           }
         }
       }
