Index: wp-admin/includes/plugin.php
===================================================================
--- wp-admin/includes/plugin.php	(revision 11952)
+++ wp-admin/includes/plugin.php	(working copy)
@@ -43,6 +43,7 @@
  *		'PluginURI' - Plugin web site address.
  *		'TextDomain' - Plugin's text domain for localization.
  *		'DomainPath' - Plugin's relative directory path to .mo files.
+ *		'GUID' - Plugin's globally unique identifier
  *
  * Some users have issues with opening large files and manipulating the contents
  * for want is usually the first 1kiB or 2kiB. This function stops pulling in
@@ -70,32 +71,34 @@
 	$fp = fopen($plugin_file, 'r');
 
 	// Pull only the first 8kiB of the file in.
-	$plugin_data = fread( $fp, 8192 );
+	$plugin_head = fread( $fp, 8192 );
 
 	// PHP will close file handle, but we are good citizens.
 	fclose($fp);
 
-	preg_match( '|Plugin Name:(.*)$|mi', $plugin_data, $name );
-	preg_match( '|Plugin URI:(.*)$|mi', $plugin_data, $uri );
-	preg_match( '|Version:(.*)|i', $plugin_data, $version );
-	preg_match( '|Description:(.*)$|mi', $plugin_data, $description );
-	preg_match( '|Author:(.*)$|mi', $plugin_data, $author_name );
-	preg_match( '|Author URI:(.*)$|mi', $plugin_data, $author_uri );
-	preg_match( '|Text Domain:(.*)$|mi', $plugin_data, $text_domain );
-	preg_match( '|Domain Path:(.*)$|mi', $plugin_data, $domain_path );
+	$data_keys = array(
+		'Name' => 'Plugin Name', // |Plugin Name:(.*)$|mi
+		'PluginURI' => 'Plugin URI',
+		'Description' => 'Description',
+		'Author' => 'Author',
+		'AuthorURI' => 'Author URI',
+		'Version' => 'Version',
+		'TextDomain' => 'Text Domain',
+		'DomainPath' => 'DomainPath',
+		'GUID' => 'GUID',
+	);
 
-	foreach ( array( 'name', 'uri', 'version', 'description', 'author_name', 'author_uri', 'text_domain', 'domain_path' ) as $field ) {
-		if ( !empty( ${$field} ) )
-			${$field} = _cleanup_header_comment(${$field}[1]);
+	$plugin_data = array();
+	foreach ( $data_keys as $field => $preg ) {
+		preg_match( "|$preg:(.*)\$|mi", $plugin_head, $match );
+		if ( empty( $field ) )
+			$plugin_data[$field] = '';
 		else
-			${$field} = '';
+			$plugin_data[$field] = _cleanup_header_comment( $match[1] );
 	}
 
-	$plugin_data = array(
-				'Name' => $name, 'Title' => $name, 'PluginURI' => $uri, 'Description' => $description,
-				'Author' => $author_name, 'AuthorURI' => $author_uri, 'Version' => $version,
-				'TextDomain' => $text_domain, 'DomainPath' => $domain_path
-				);
+	$plugin_data['Title'] = $plugin_data['Name'];
+
 	if ( $markup || $translate )
 		$plugin_data = _get_plugin_data_markup_translate($plugin_file, $plugin_data, $markup, $translate);
 
