--- a/modules/user/user.module
+++ b/modules/user/user.module
@@ -2813,19 +2813,8 @@
 
   $roles = array();
   foreach ($result as $role) {
-    switch ($role->rid) {
-      // We only translate the built in role names
-      case DRUPAL_ANONYMOUS_RID:
-        if (!$membersonly) {
-          $roles[$role->rid] = t($role->name);
-        }
-        break;
-      case DRUPAL_AUTHENTICATED_RID:
-        $roles[$role->rid] = t($role->name);
-        break;
-      default:
-        $roles[$role->rid] = $role->name;
-    }
+    // We translate all the role names
+    $roles[$role->rid] = t($role->name);
   }
 
   return $roles;
@@ -3341,7 +3330,7 @@
     if ($permissions = $function('permission')) {
       asort($permissions);
       foreach ($permissions as $permission => $description) {
-        $options[t('@module module', array('@module' => $module))][$permission] = t($permission);
+        $options[t('@module module', array('@module' => $module))][$permission] = (isset($description['title'])) ? strip_tags($description['title']) : t($permission);
       }
     }
   }
