Index: includes/updater.inc
===================================================================
RCS file: /Users/wright/drupal/local_repo/drupal/includes/updater.inc,v
retrieving revision 1.7
diff -u -p -r1.7 updater.inc
--- includes/updater.inc	1 Sep 2010 20:08:17 -0000	1.7
+++ includes/updater.inc	2 Jan 2011 20:57:04 -0000
@@ -137,7 +137,7 @@ class Updater {
    *   Path to the info file.
    */
   public static function findInfoFile($directory) {
-    $info_files = file_scan_directory($directory, '/.*\.info/');
+    $info_files = file_scan_directory($directory, '/.*\.info$/');
     if (!$info_files) {
       return FALSE;
     }
@@ -179,7 +179,7 @@ class Updater {
   public static function getProjectTitle($directory) {
     $info_file = self::findInfoFile($directory);
     $info = drupal_parse_info_file($info_file);
-    if (!$info) {
+    if (empty($info['name']) {
       throw new UpdaterException(t('Unable to parse info file.'));
     }
     return $info['name'];
Index: modules/update/update.module
===================================================================
RCS file: /Users/wright/drupal/local_repo/drupal/modules/update/update.module,v
retrieving revision 1.73
diff -u -p -r1.73 update.module
--- modules/update/update.module	2 Jan 2011 17:26:39 -0000	1.73
+++ modules/update/update.module	2 Jan 2011 20:56:42 -0000
@@ -696,14 +696,14 @@ function update_verify_update_archive($p
   // Parse all the .info files and make sure they're compatible with this
   // version of Drupal core.
   $incompatible = array();
-  $files = file_scan_directory("$directory/$project", '/^' . DRUPAL_PHP_FUNCTION_PATTERN . '\.info/', array('key' => 'name', 'min_depth' => 0));
+  $files = file_scan_directory("$directory/$project", '/^' . DRUPAL_PHP_FUNCTION_PATTERN . '\.info$/', array('key' => 'name', 'min_depth' => 0));
   foreach ($files as $key => $file) {
     // Get the .info file for the module or theme this file belongs to.
     $info = drupal_parse_info_file($file->uri);
 
     // If the module or theme is incompatible with Drupal core, set an error.
     if (empty($info['core']) || $info['core'] != DRUPAL_CORE_COMPATIBILITY) {
-      $incompatible[] = $info['name'];
+      $incompatible[] = !empty($info['name']) ? $info['name'] : t('Unknown');
     }
   }
   if (!empty($incompatible)) {
