Index: role_delegation.module
===================================================================
--- role_delegation.module	(revision 4508)
+++ role_delegation.module	(working copy)
@@ -247,7 +247,7 @@
         return; 
       }
       // Generate the form items.
-      $form['roles_preserve'] = array(
+      $roles_preserve = array(
         '#type' => 'value',
         '#value' => $rids_preserve,
       );
@@ -263,9 +263,11 @@
         // Since the user module does array_merge() instead of array_merge_recursive() (see bug http://drupal.org/node/227690),
         // we must move this under 'account' later at role_delegation_form_user_register_alter()
         $form['roles_assign'] = $roles_assign;
+        $form['roles_preserve'] = $roles_preserve;
       }
       else {
         $form['account']['roles_assign'] = $roles_assign;
+        $form['account']['roles_preserve'] = $roles_preserve;
       }
       return $form;
     }
@@ -285,6 +287,10 @@
     unset($form['roles_assign']);
     $form['account']['notify']['#weight'] = 11;
   }
+  if (isset($form['roles_preserve'])) {
+    $form['account']['roles_preserve'] = $form['roles_preserve'];
+    unset($form['roles_preserve']);
+  }
 }
 
 /**
