diff --git modules/system/system.module modules/system/system.module
index c02a725..104f4d8 100644
--- modules/system/system.module
+++ modules/system/system.module
@@ -1908,6 +1908,43 @@ function _system_get_module_data() {
 }
 
 /**
+ * Helper function to scan and collect project .info data.
+ *
+ * @return
+ *   An associative array of module information.
+ */
+function _system_get_project_data() {
+  // Find project files
+  $projects = drupal_system_listing('/project.info/', 'modules', 'name', 0);
+
+  // Set defaults for module info.
+  $defaults = array(
+    'description' => '',
+    'package' => 'Other',
+    'version' => NULL,
+    'type' => NULL,
+    'php' => DRUPAL_MINIMUM_PHP,
+    'bootstrap' => 0,
+    'default_modules' => array(),
+  );
+
+  // Read info files for each project.
+  foreach ($projects as $key => $project) {
+    // Look for the info file.
+    $project->info = drupal_parse_info_file($project->uri);
+
+    // Merge in defaults and save.
+    $projects[$key]->info = $project->info + $defaults;
+
+    // Invoke hook_system_info_alter() to give installed modules a chance to
+    // modify the data in the .info files if necessary.
+    drupal_alter('system_info', $projects[$key]->info, $projects[$key]);
+  }
+
+  return $projects;
+}
+
+/**
  * Collect data about all currently available modules.
  *
  * @return
