diff --git a/commands/pm/info.pm.inc b/commands/pm/info.pm.inc
index 3930289..42cbde5 100644
--- a/commands/pm/info.pm.inc
+++ b/commands/pm/info.pm.inc
@@ -4,6 +4,7 @@
  * Command callback. Show detailed info for one or more extensions.
  */
 function drush_pm_info() {
+  $result = array();
   $args = pm_parse_arguments(func_get_args());
 
   $extension_info = drush_get_extensions();
@@ -32,11 +33,28 @@ function drush_pm_info() {
     else {
       $data = _drush_pm_info_theme($info);
     }
-    drush_print_table(drush_key_value_to_array_table($data));
+    $result[$extension] = $data;
+    drush_print_table(drush_key_value_to_array_table(_drush_pm_info_format_table_data($data)));
     print "\n";
   }
+  return $result;
 }
 
+function _drush_pm_info_format_table_data($data) {
+  $result = array();
+  foreach( $data as $key => $value) {
+    if (is_array($value)) {
+      if (empty($value)) {
+        $value = 'none';
+      }
+      else {
+        $value = implode(', ', $value);
+      }
+    }
+    $result[$key] = $value;
+  }
+  return $result;
+}
 /**
  * Return an array with general info of an extension.
  */
@@ -78,24 +96,19 @@ function _drush_pm_info_module($info) {
   }
   $data['Schema version'] = $schema_version;
   if ($major_version == 7) {
-    $data['Files'] = implode(', ', $info->info['files']);
+    $data['Files'] = $info->info['files'];
   }
-  if (count($info->info['dependencies']) > 0) {
-    $requires = implode(', ', $info->info['dependencies']);
-  }
-  else {
-    $requires = "none";
-  }
-  $data['Requires'] = $requires;
+  $data['Requires'] = $info->info['dependencies'];
 
   if ($major_version == 6) {
-    $requiredby = !empty($info->info['dependents'])?$info->info['dependents']:array("none");
+    $requiredby = $info->info['dependents'];
   }
   else {
-    $requiredby = !empty($info->required_by)?array_keys($info->required_by):array("none");
+    $requiredby = array_keys($info->required_by);
   }
-  $data['Required by'] = implode(', ', $requiredby);
-
+  $data['Required by'] = $requiredby;
+  $perm_fn = $info->name . '_perm';
+  $data['Permissions Defined'] = function_exists($perm_fn) ? $perm_fn() : array();
   return $data;
 }
 
@@ -111,19 +124,19 @@ function _drush_pm_info_theme($info) {
   $data['PHP'] = $info->info['php'];
   $data['Engine'] = $info->info['engine'];
   $data['Base theme'] = isset($info->base_themes) ? implode($info->base_themes, ', ') : '';
-  $regions = implode(', ', $info->info['regions']);
+  $regions = $info->info['regions'];
   $data['Regions'] = $regions;
-  $features = implode(', ', $info->info['features']);
+  $features = $info->info['features'];
   $data['Features'] = $features;
   if (count($info->info['stylesheets']) > 0) {
     $data['Stylesheets'] = '';
     foreach ($info->info['stylesheets'] as $media => $files) {
-      $files = implode(', ', array_keys($files));
+      $files = array_keys($files);
       $data['Media '.$media] = $files;
     }
   }
   if (count($info->info['scripts']) > 0) {
-    $scripts = implode(', ', array_keys($info->info['scripts']));
+    $scripts = array_keys($info->info['scripts']);
     $data['Scripts'] = $scripts;
   }
   return $data;
diff --git a/commands/pm/pm.drush.inc b/commands/pm/pm.drush.inc
index 7da0096..4ae8894 100644
--- a/commands/pm/pm.drush.inc
+++ b/commands/pm/pm.drush.inc
@@ -862,7 +862,7 @@ function drush_pm_enable_validate() {
       }
     }
   }
-  
+
   $searchpath = array();
   foreach (array_merge($modules, $themes) as $name) {
     $searchpath[] = dirname($extension_info[$name]->filename);
@@ -874,11 +874,11 @@ function drush_pm_enable_validate() {
   if (!empty($searchpath)) {
     _drush_add_commandfiles($searchpath);
   }
-  
+
   drush_set_context('PM_ENABLE_EXTENSION_INFO', $extension_info);
   drush_set_context('PM_ENABLE_MODULES', $modules);
   drush_set_context('PM_ENABLE_THEMES', $themes);
-  
+
   return TRUE;
 }
 
@@ -922,6 +922,10 @@ function drush_pm_enable() {
   while ($extension = drush_db_fetch_object($rsc)) {
     if ($extension->status) {
       drush_log(dt('!extension was enabled successfully.', array('!extension' => $extension->name)), 'ok');
+      $value = drush_invoke_process('@self', 'pm-info', array($extension->name));
+      if (array_key_exists('Permissions Defined', $value['object'][$extension->name])) {
+        drush_log(dt('!extension defines the following permissions: !perms', array('!extension' => $extension->name, '!perms' => implode(', ', $value['object'][$extension->name]['Permissions Defined']))), 'ok');
+      }
     }
     else {
       $problem_extensions[] = $extension->name;
