--- uc_roles.module	2011-02-15 11:51:28.000000000 -0500
+++ uc_rolesNew.module	2011-02-15 11:50:18.000000000 -0500
@@ -353,6 +353,12 @@ function uc_roles_user_submit(&$edit, &$
   if (!user_access('administer users') || $category != 'account') {
     return;
   }
+  
+  // If user doesn't have "administer permissions" permission, we need to populate the roles,
+  // otherwise user_save() will delete them.
+  if (!isset($edit['roles'])) {
+    $edit['roles'] = $account->roles;
+  }
 
   // If a new temporary role is added.
   // Grant a new role.
