diff -rup ../autoassignrole/autoassignrole-admin.inc ./autoassignrole-admin.inc
--- ../autoassignrole/autoassignrole-admin.inc	2010-05-12 00:24:21.000000000 +1000
+++ ./autoassignrole-admin.inc	2010-11-04 10:56:04.000000000 +1100
@@ -232,6 +232,15 @@ function autoassignrole_admin_form() {
     '#size' => 60,
     '#maxlength' => 128
   );
+  $form['autoassignrole_settings_user']['user_fieldset_weight'] = array(
+    '#type' => 'weight',
+    '#title' => t('User Role Fieldset Weight'),
+    '#description' => t('The weight of the fieldset that contains role options.
+      Heavier items on the registration form will sink and the lighter items
+      will be positioned nearer the top.'),
+    '#default_value' => _autoassignrole_get_settings('user_fieldset_weight'),
+    '#delta' => 40,
+  );
   $form['autoassignrole_settings_user']['user_title'] = array(
     '#type' => 'textfield',
     '#title' => t('User Role Title'),
@@ -350,6 +359,7 @@ function autoassignrole_admin_form_submi
   db_query($sql, $form_state['values']['user_multiple'], 'user_multiple');
   db_query($sql, $form_state['values']['user_title'], 'user_title');
   db_query($sql, $form_state['values']['user_fieldset_title'], 'user_fieldset_title');
+  db_query($sql, $form_state['values']['user_fieldset_weight'], 'user_fieldset_weight');
   db_query($sql, $form_state['values']['user_required'], 'user_required');
   db_query($sql, $form_state['values']['user_sort'], 'user_sort');
   db_query($sql, $form_state['values']['user_description'], 'user_description');
diff -rup ../autoassignrole/autoassignrole.install ./autoassignrole.install
--- ../autoassignrole/autoassignrole.install	2009-08-25 23:04:44.000000000 +1000
+++ ./autoassignrole.install	2010-11-04 10:45:00.000000000 +1100
@@ -25,6 +25,7 @@ function autoassignrole_install() {
   db_query($sql, 'user_description', '');
   db_query($sql, 'user_title', t("Role"));
   db_query($sql, 'user_fieldset_title', t("User Roles"));
+  db_query($sql, 'user_fieldset_weight', 0);
   db_query($sql, 'user_sort', 'SORT_ASC');
   db_query($sql, 'user_selection', 2);
   db_query($sql, 'page_active', 0);
@@ -239,3 +240,15 @@ function autoassignrole_update_6005() {
   }
   return $ret;
 }
+
+/**
+ * Add the user_fieldset_weight admin setting.
+ */
+function autoassignrole_update_6106() {
+  $value = db_fetch_object(db_query("SELECT arid FROM {autoassignrole} WHERE arid = '%s'", 'user_fieldset_weight'));
+  if (!$value->arid) {
+    $ret[] = update_sql("INSERT INTO {autoassignrole} (arid, value) VALUES ('user_fieldset_weight', '0')");
+  }
+  return $ret;
+}
+
diff -rup ../autoassignrole/autoassignrole.module ./autoassignrole.module
--- ../autoassignrole/autoassignrole.module	2010-05-12 00:24:21.000000000 +1000
+++ ./autoassignrole.module	2010-11-04 10:22:33.000000000 +1100
@@ -201,6 +201,7 @@ function autoassignrole_user($op, &$edit
            '#title' => _autoassignrole_get_settings('user_fieldset_title'),
            '#collapsible' => FALSE,
            '#collapsed' => FALSE,
+           '#weight' => _autoassignrole_get_settings('user_fieldset_weight'),
          );
          if (_autoassignrole_get_settings('user_sort') == "SORT_ASC") {
            uasort($roles, '_autoassignrole_array_asc');
