Index: misc/drupal.css
===================================================================
RCS file: /cvs/drupal/drupal/misc/drupal.css,v
retrieving revision 1.125
diff -u -p -r1.125 drupal.css
--- misc/drupal.css	23 Nov 2005 08:19:46 -0000	1.125
+++ misc/drupal.css	29 Nov 2005 02:18:24 -0000
@@ -365,6 +365,9 @@ dl.multiselect .form-item {
 #permissions td.permission, #blocks td.block, #taxonomy td.term, #taxonomy td.message {
   padding-left: 1.5em;
 }
+#permissions .description {
+  font-size: 0.85em;
+}
 
 #access-rules .access-type, #access-rules .rule-type {
   margin-right: 1em;
Index: modules/node.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/node.module,v
retrieving revision 1.556
diff -u -p -r1.556 node.module
--- modules/node.module	27 Nov 2005 11:11:46 -0000	1.556
+++ modules/node.module	29 Nov 2005 02:18:26 -0000
@@ -580,7 +580,8 @@ function node_show($node, $cid) {
  * Implementation of hook_perm().
  */
 function node_perm() {
-  return array('administer nodes', 'access content');
+  return array('administer nodes' => t('Allows the user to edit or delete arbitrary nodes.'),
+               'access content'   => t('Allows the user to view a given node.'));
 }
 
 /**
Index: modules/page.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/page.module,v
retrieving revision 1.145
diff -u -p -r1.145 page.module
--- modules/page.module	23 Nov 2005 16:18:28 -0000	1.145
+++ modules/page.module	29 Nov 2005 02:18:26 -0000
@@ -38,7 +38,7 @@ function page_help($section) {
  * Implementation of hook_perm().
  */
 function page_perm() {
-  return array('create pages', 'edit own pages');
+  return array('create pages' => t('Allows users to create new page nodes.'), 'edit own pages');
 }
 
 /**
Index: modules/user.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/user.module,v
retrieving revision 1.535
diff -u -p -r1.535 user.module
--- modules/user.module	28 Nov 2005 12:31:47 -0000	1.535
+++ modules/user.module	29 Nov 2005 02:18:29 -0000
@@ -1562,10 +1562,19 @@ function user_admin_perm($str_rids = NUL
   foreach (module_list() as $module) {
     if ($permissions = module_invoke($module, 'perm')) {
       $form['permission'][] = array('#type' => 'markup', '#value' => t('%module module', array('%module' => $module)));
-      asort($permissions);
-      foreach ($permissions as $perm) {
+      $permdesc = array();
+      foreach ($permissions as $permkey => $perm) {
+        if (is_string($permkey)) {
+          $permdesc[] = array($permkey, $perm);
+        } else {
+          $permdesc[] = array($perm, '');
+        }
+      }
+      asort($permdesc);
+      foreach ($permdesc as $perm) {
+        list($perm, $description) = $perm;
         $options[$perm] = '';
-        $form['permission'][$perm] = array('#type' => 'markup', '#value' => t($perm));
+        $form['permission'][$perm] = array('#type' => 'markup', '#value' => t($perm) . (strlen($description) ? '<div class="description">' . t($description) . '</div>' : '') );
         foreach ($role_names as $rid => $name) {
           // Builds arrays for checked boxes for each role
           if (strstr($role_permissions[$rid], $perm)) {
