Index: book_manager.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/book_manager/book_manager.module,v
retrieving revision 1.1.2.14.2.25
diff -u -p -r1.1.2.14.2.25 book_manager.module
--- book_manager.module	21 Dec 2010 19:41:13 -0000	1.1.2.14.2.25
+++ book_manager.module	21 Dec 2010 20:08:22 -0000
@@ -710,20 +710,30 @@ function book_manager_outline_form_submi
  * That allows the user to check the box and create a personal book rather than a global book
  */
 function _book_manager_set_personal(&$form) {
-  if (user_access('create new books') && user_access('create personal books')) {
-    $node = $form['#node'];
-    if ($node->nid) {
-      $bid = db_fetch_array(db_query('SELECT bid FROM {book_manager} WHERE bid = %d', $node->nid));
-      if ($bid['bid']) {
-        $ispersonal = TRUE;
-      }
-      else {
-        $ispersonal = FALSE;
-      }
+  $node = $form['#node'];
+  if ($node->nid) {
+    $bid = db_fetch_array(db_query('SELECT bid FROM {book_manager} WHERE bid = %d', $node->nid));
+    if ($bid['bid']) {
+      $ispersonal = TRUE;
     }
     else {
+      $ispersonal = FALSE;
+    }
+  }
+  else {
+    if (user_access('create personal books') && !user_access('create books')) {
+      $ispersonal = TRUE;
+    }
+    elseif (user_access('create books') && user_access('create personal books')) {
       $ispersonal = variable_get('book_manager_personal_book_default', 0);
     }
+    else {
+      $ispersonal == 'FALSE';
+    }
+  }
+
+
+  if (user_access('create new books') && user_access('create personal books')) {
 
     drupal_add_js(array('book_manager' => array('nid' => $node->nid)), "setting");
     drupal_add_js(drupal_get_path('module', 'book_manager') . '/book_manager.js');
@@ -735,6 +745,15 @@ function _book_manager_set_personal(&$fo
       '#description' => t('If checked this book will be a personal book, and will only be able to contain nodes from a single author'),
     );
   }
+  elseif (isset($form['book'])) {
+    // This covers the use case where the editing user may not have the same permissions as the 
+    // book owner. In this case we just preserve the personal book setting. 
+    $form['book']['ispersonal'] = array(
+      '#type' => 'value',
+      '#value' => $ispersonal,
+    );  
+  }
+dpm($form);
 }
 
 /**
