Index: modules/book/book.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/book/book.module,v
retrieving revision 1.494
diff -u -p -r1.494 book.module
--- modules/book/book.module	27 May 2009 18:33:55 -0000	1.494
+++ modules/book/book.module	3 Jun 2009 03:33:46 -0000
@@ -294,7 +294,7 @@ function theme_book_title_link($link) {
  * the options for a form select.
  */
 function book_get_books() {
-  static $all_books;
+  $all_books = &drupal_static(__FUNCTION__);
 
   if (!isset($all_books)) {
     $all_books = array();
@@ -580,7 +580,7 @@ function book_update_bid($book_link) {
  *   immediately after it in the array.
  */
 function book_get_flat_menu($book_link) {
-  static $flat = array();
+  $flat = &drupal_static(__FUNCTION__, array());
 
   if (!isset($flat[$book_link['mlid']])) {
     // Call menu_tree_all_data() to take advantage of the menu system's caching.
@@ -1144,7 +1144,7 @@ function book_link_load($mlid) {
  *   An subtree of menu links in an array, in the order they should be rendered.
  */
 function book_menu_subtree_data($item) {
-  static $tree = array();
+  $tree = &drupal_static(__FUNCTION__, array());
 
   // Generate a cache ID (cid) specific for this $menu_name and $item.
   $cid = 'links:' . $item['menu_name'] . ':subtree-cid:' . $item['mlid'];
Index: modules/book/book.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/book/book.test,v
retrieving revision 1.9
diff -u -p -r1.9 book.test
--- modules/book/book.test	25 Apr 2009 23:01:43 -0000	1.9
+++ modules/book/book.test	3 Jun 2009 03:33:46 -0000
@@ -95,6 +95,8 @@ class BookTestCase extends DrupalWebTest
    *   The nodes that should be displayed in the breadcrumb.
    */
   function checkBookNode($node, $nodes, $previous = FALSE, $up = FALSE, $next = FALSE, array $breadcrumb) {
+    // $number does not use drupal_static as it should not be reset
+    // since it uniquely identifies each call to checkBookNode().
     static $number = 0;
     $this->drupalGet('node/' . $node->nid);
 
@@ -166,6 +168,8 @@ class BookTestCase extends DrupalWebTest
    * @param integer $parent Parent book reference id.
    */
   function createBookNode($book_nid, $parent = NULL) {
+    // $number does not use drupal_static as it should not be reset
+    // since it uniquely identifies each call to createBookNode().
     static $number = 0; // Used to ensure that when sorted nodes stay in same order.
 
     $edit = array();
