Index: uc_roles.module
===================================================================
--- uc_roles.module	(revision 3)
+++ uc_roles.module	(working copy)
@@ -367,11 +367,11 @@
 
     // Push in values so user.module will save in the roles.
     $edit['roles'][$edit['new_role_add']] = _uc_roles_get_name($edit['new_role_add']);
-
-    // Reset the new role form.
-    $edit['new_role'] = $edit['new_role_add'] = $edit['new_role_add_qty'] = $edit['new_role_add_granularity'] = NULL;
   }
 
+  // Reset the new role form.
+  $edit['new_role'] = $edit['new_role_add'] = $edit['new_role_add_qty'] = $edit['new_role_add_granularity'] = NULL;
+
   // Check if any temporary role actions were taken.
   foreach ((array)$edit['table'] as $rid => $value) {
     // Remove this expiration.
@@ -390,6 +390,9 @@
     }
   }
 
+  // Reset the expiration table.
+  $edit['table'] = NULL;
+
   // If a user's role is removed using Drupal, then so is any expiration data.
   if (is_array($edit['roles'])) {
     foreach ($account->roles as $rid => $role) {
