--- pm.drush.inc.old	2009-07-25 20:04:53.000000000 +1000
+++ pm.drush.inc	2009-07-25 21:21:48.000000000 +1000
@@ -297,7 +297,13 @@
 }
 
 function pm_module_status($enabled, $module_info) {
-  $rows[] = array(dt('Name'), dt('Status'), dt('Description'));
+  $dbmodules = db_query("SELECT name, status, schema_version FROM {system} WHERE type = 'module'");
+  while ($dbmodule = db_fetch_object($dbmodules)) {
+    if (!in_array($dbmodule->name,array_keys($module_info))) {
+      $enabled = ($dbmodule->status < 1 ? "Disabled" : "Enabled" );
+      $rows[] = array( "MISSING", $dbmodule->name, "unknown", $enabled, $dbmodule->schema_version, "");
+    }
+  }
   foreach ($module_info as $module_name => $module) {
     $enabled = dt('Disabled');
     if ($module->status) {
@@ -305,8 +311,10 @@
       $pipe[] = $module_name;
     }
     $info = $module_info[$module_name]->info;
-    $rows[] = array($info['name'] . ' (' . $module_name . ')', $enabled, truncate_utf8($info['description'], 60, FALSE, TRUE));
+    $rows[] = array( $info['project'], $module_name, $info['version'] , $enabled, $module->schema_version, implode(",",$info['dependencies']));
   }
+  sort($rows);
+  array_unshift($rows, array(dt('Project'), dt('Name'), dt('Version'), dt('Status'), dt('Schema'), dt('Dependencies')));
   drush_print_table($rows, TRUE);
   
   // Space delimited list for use by other scripts. Set the --pipe option.
