diff --git a/includes/registry.inc b/includes/registry.inc
index 76c503a87bb808c331647e43627aadcabf968f36..450af6c14c0c73571822a469f3772891236ad292 100644
--- a/includes/registry.inc
+++ b/includes/registry.inc
@@ -38,8 +38,7 @@ function _registry_rebuild() {
   _registry_get_resource_name();
 
   // Get current list of modules and their files.
-  $modules = drupal_system_listing('/\.module$/', 'modules', 'name', 0);
-  system_get_files_database($modules, 'module');
+  $modules = system_get_module_data();
   // Get the list of files we are going to parse.
   $files = array();
   foreach ($modules as &$module) {
@@ -48,11 +47,6 @@ function _registry_rebuild() {
     // Store the module directory for use in hook_registry_files_alter().
     $module->dir = $dir;
 
-    // Parse the .info file for all modules, reguardless of their status so the
-    // list of files can then be used in hook_registry_files_alter()
-    // implementations.
-    $module->info = drupal_parse_info_file($dir . '/' . $module->name . '.info');
-
     if ($module->status) {
       // Add files for enabled modules to the registry.
       foreach ($module->info['files'] as $file) {