Index: fb_user.module
===================================================================
--- fb_user.module	(revision 4006)
+++ fb_user.module	(working copy)
@@ -681,16 +681,18 @@
  * User is about to be updated.
  */
 function fb_user_user_update(&$edit, $account, $category) {
-  if ($edit['map']) {
-    _fb_user_set_map($account, $edit['map']);
-  }
-  else {
-    // Delete account mapping, because administrator has unchecked the connect option.
-    $num_deleted = db_delete('fb_user')
-      ->condition('uid', $account->uid)
-      ->execute();
+  if (isset($edit['fb_user_map'])) { // Only set on account form submit.
+    if ($edit['fb_user_map']) {
+      _fb_user_set_map($account, $edit['map']);
+    }
+    else {
+      // Delete account mapping, because administrator has unchecked the connect option.
+      $num_deleted = db_delete('fb_user')
+        ->condition('uid', $account->uid)
+        ->execute();

-    fb_invoke(FB_USER_OP_POST_USER_DISCONNECT, array('account' => $account), NULL, 'fb_user');
+      fb_invoke(FB_USER_OP_POST_USER_DISCONNECT, array('account' => $account), NULL, 'fb_user');
+    }
   }
 }

@@ -749,6 +751,10 @@
         $user->uid == $form['#user']->uid))
     return; // hide from this user

+  if (empty($form['#user_category']) || $form['#user_category'] != 'account') {
+    return; // Alter only the primary user account form.
+  }
+
   $fb_user_data = _fb_user_get_config($_fb_app);
   $account = $form['#user'];
   $fbu = _fb_user_get_fbu($account->uid);
@@ -761,7 +767,7 @@
       '#collapsed' => false,
       '#collapsible' => false,
     );
-    $form['fb_user']['map'] = array(
+    $form['fb_user']['fb_user_map'] = array(
       '#type' => 'checkbox',
       '#title' => t('Connect to facebook.com'),
       '#default_value' => $fbu,
@@ -772,7 +778,7 @@
     try {
       $data = fb_api($fbu, array('access_token' => fb_get_token()));
       if (count($data)) {
-        $form['fb_user']['map']['#description'] .=
+        $form['fb_user']['fb_user_map']['#description'] .=
           t('Local account !username corresponds to !profile_page on Facebook.com.',
             array(
               '!username' => l($account->name, 'user/' . $account->uid),
@@ -786,11 +792,11 @@
     if (fb_facebook_user() == $fbu) {
       // The user is currently connected to facebook.  Depending on
       // config, they may not be able to break the connection.
-      $form['fb_user']['map']['#disabled'] = TRUE;
-      $form['fb_user']['map']['#description'] .= '<br/>' . t('(Checkbox disabled because you are currently connected to facebook.)');
+      $form['fb_user']['fb_user_map']['#disabled'] = TRUE;
+      $form['fb_user']['fb_user_map']['#description'] .= '<br/>' . t('(Checkbox disabled because you are currently connected to facebook.)');
     }
     else {
-      $form['fb_user']['map']['#description'] .= '<br/>' . t('Uncheck then click save to delete this connection.');
+      $form['fb_user']['fb_user_map']['#description'] .= '<br/>' . t('Uncheck then click save to delete this connection.');
     }
   }

@@ -808,7 +814,7 @@
           '#collapsible' => false,
         );

-        $form['fb_user']['map'] = array(
+        $form['fb_user']['fb_user_map'] = array(
           '#type' => 'checkbox',
           '#title' => t('Connect account to facebook.com'),
           '#default_value' => 0,
@@ -861,21 +867,10 @@
     }
   }

-  if (isset($form)) {
-    $form['fb_user']['map']['#tree'] = TRUE;
-  }
-  else {
-    // Could add a facebook connect button or canvas page authorization link.
-    $form['description'] = array(
-      '#markup' => t('This account is not associated with a Facebook Application.'),
-      '#prefix' => '<p>',
-      '#suffix' => '</p>',
-    );
-  }
-
   // On user/edit, hide proxied email
   if (isset($form['account']) && isset($form['account']['mail'])) {
     $account = $form['#user'];
+    // Proxied email obsolete.  Deprecated.
     if (isset($account->fb_user_proxied_mail) &&
         ($form['account']['mail']['#default_value'] == $account->fb_user_proxied_mail)) {
       unset($form['account']['mail']['#default_value']);
