diff --git a/tests/workbench_moderation.test b/tests/workbench_moderation.test
index 42d1665..654ec62 100644
--- a/tests/workbench_moderation.test
+++ b/tests/workbench_moderation.test
@@ -327,3 +327,64 @@ class WorkbenchRedirectAfterTitleChangeTestCase extends WorkbenchModerationTestC
     $this->assertResponse(200);
   }
 }
+
+class WorkbenchModerationBookTestCase extends DrupalWebTestCase {
+
+  public static function getInfo() {
+    return array(
+      'name' => 'Moderate book content',
+      'description' => 'Tests that published book nodes can be revised',
+      'group' => 'Workbench Moderation',
+    );
+  }
+
+  function setUp($modules = array()) {
+    // Enable Workbench Moderation and Book modules.
+    $modules = array_merge($modules, array('workbench_moderation', 'book'));
+    parent::setUp($modules);
+
+    $this->content_type = 'book';
+    // Enable moderation for book nodes.
+    variable_set('node_options_' . $this->content_type, array('revision', 'moderation'));
+
+    // Create and login a moderator user.
+    $this->moderator_user = $this->drupalCreateUser(array(
+      'access content',
+      'view revisions',
+      'view all unpublished content',
+      'view moderation history',
+      'view moderation messages',
+      'bypass workbench moderation',
+      "create {$this->content_type} content",
+      "edit any {$this->content_type} content",
+      'add content to books',
+      'create new books',
+    ));
+    $this->drupalLogin($this->moderator_user);
+  }
+
+  function testBookDraft() {
+    // Create a new, published book node.
+    $body_name = 'body[' . LANGUAGE_NONE . '][0]';
+    $edit = array(
+      'title' => $this->randomName(),
+      "{$body_name}[value]" => $this->randomString(128),
+      "{$body_name}[format]" => filter_default_format(),
+      'book[bid]' => 'new',
+      'workbench_moderation_state_new' => workbench_moderation_state_published(),
+    );
+    $this->drupalPost("node/add/{$this->content_type}", $edit, t('Save'));
+    $node = $this->drupalGetNodeByTitle($edit['title']);
+
+    // Create a new draft.
+    $new_title = $this->randomName(10) . '_revision1';
+    $edit = array('title' => $new_title);
+    $this->drupalPost("node/{$node->nid}/edit", $edit, t('Save'));
+
+    // Make sure we are viewing the newly-created draft. The book module and
+    // specifically book_node_presave() can interfere with Workbench Moderation.
+    $this->assertUrl("node/{$node->nid}/draft", array(), t('New draft is shown.'));
+    $this->assertText($new_title, t('Revised title is visible.'));
+  }
+
+}
