Index: user_selectable_roles.module
===================================================================
--- user_selectable_roles.module	(revision 24111)
+++ user_selectable_roles.module	(working copy)
@@ -174,7 +174,8 @@
       case 'form':
         // display on new account creation OR when editing an existing account AND when editing the user account form
         if ((!isset($account->uid) || variable_get('user_selectable_roles_editing', 0)) && $category == 'account') {
-          $user_roles = $account->roles;
+          // Filter out stored roles that are not user-selectable.
+          $user_roles = array_intersect_key($user_selectable_roles, $account->roles);
           // remove anonymous and authenticated roles
           unset($user_roles[DRUPAL_ANONYMOUS_RID]);
           unset($user_roles[DRUPAL_AUTHENTICATED_RID]);
