diff --git a/entity.test b/entity.test
index 89f75da..4b4bbae 100644
--- a/entity.test
+++ b/entity.test
@@ -1470,8 +1470,8 @@ class EntityMetadataIntegrationTestCase extends EntityWebTestCase {
 
     // Try using book properties for no book nodes.
     $wrapper = entity_metadata_wrapper('node', $node3);
-    $this->assertException($wrapper, 'book');
-    $this->assertException($wrapper, 'book_ancestors');
+    $this->assertEmpty($wrapper, 'book');
+    $this->assertEmpty($wrapper, 'book_ancestors');
   }
 
   /**
@@ -1579,8 +1579,8 @@ class EntityMetadataIntegrationTestCase extends EntityWebTestCase {
         $this->assertValue($wrapper, $key);
       }
     }
-    $this->assertException($wrapper, 'book');
-    $this->assertException($wrapper, 'book_ancestors');
+    $this->assertEmpty($wrapper, 'book');
+    $this->assertEmpty($wrapper, 'book_ancestors');
     $this->assertEmpty($wrapper, 'source');
     $this->assertException($wrapper->source, 'title');
     $this->assertEmpty($wrapper, 'last_view');
diff --git a/modules/callbacks.inc b/modules/callbacks.inc
index 53f3cac..48e971a 100644
--- a/modules/callbacks.inc
+++ b/modules/callbacks.inc
@@ -20,12 +20,12 @@ function entity_metadata_entity_get_properties($entity, array $options, $name, $
  * @see entity_metadata_book_entity_info_alter()
  */
 function entity_metadata_book_get_properties($node, array $options, $name, $entity_type) {
-  if (!isset($node->book['bid'])) {
-    throw new EntityMetadataWrapperException('This node is no book page.');
-  }
   switch ($name) {
     case 'book':
-      return $node->book['bid'];
+      if (isset($node->book['bid'])) {
+        return $node->book['bid'];
+      }
+      return NULL;
 
     case 'book_ancestors':
       $ancestors = array();
