commit 587ff2a47f51fb084cb877d79f6def13a2028e2d
Author: Devin Zuczek <dzuczek@dlc-solutions.com>
Date:   Wed Nov 18 13:13:01 2015 -0500

    Mantis #27722: fix edge case book context issue when sub-pages are used as objects

diff --git a/modules/course_book/course_book.classes.inc b/modules/course_book/course_book.classes.inc
index 725b186..682ab2e 100644
--- a/modules/course_book/course_book.classes.inc
+++ b/modules/course_book/course_book.classes.inc
@@ -6,8 +6,15 @@ class CourseObjectBook extends CourseObjectNode {
    * Course node context handler callback.
    */
   public static function getNodeInstances($node) {
-    if (!empty($node->book['bid'])) {
-      return array($node->book['bid']);
+    if (!$courseObject = course_get_course_object('course_book', 'book', $node->nid)) {
+      // This book page is not a course object. We need to return the parent so
+      // that the correct course context is set.
+      if (!empty($node->book['bid'])) {
+        return array($node->book['bid']);
+      }
+    }
+    else {
+      return parent::getNodeInstances($node);
     }
   }
 
