Index: wp-includes/plugin.php
===================================================================
--- wp-includes/plugin.php	(revision 4106)
+++ wp-includes/plugin.php	(working copy)
@@ -165,4 +165,94 @@
 	add_action('deactivate_' . $file, $function);
 }
 
+
+function get_plugin_data($plugin_file) {
+	$plugin_data = implode('', file($plugin_file));
+	preg_match("|Plugin Name:(.*)|i", $plugin_data, $plugin_name);
+	preg_match("|Plugin URI:(.*)|i", $plugin_data, $plugin_uri);
+	preg_match("|Description:(.*)|i", $plugin_data, $description);
+	preg_match("|Author:(.*)|i", $plugin_data, $author_name);
+	preg_match("|Author URI:(.*)|i", $plugin_data, $author_uri);
+	if (preg_match("|Version:(.*)|i", $plugin_data, $version))
+		$version = trim($version[1]);
+	else
+		$version = '';
+
+	$description = wptexturize(trim($description[1]));
+
+	$name = $plugin_name[1];
+	$name = trim($name);
+	$plugin = $name;
+	if ('' != $plugin_uri[1] && '' != $name) {
+		$plugin = '<a href="' . trim($plugin_uri[1]) . '" title="'.__('Visit plugin homepage').'">'.$plugin.'</a>';
+	}
+
+	if ('' == $author_uri[1]) {
+		$author = trim($author_name[1]);
+	} else {
+		$author = '<a href="' . trim($author_uri[1]) . '" title="'.__('Visit author homepage').'">' . trim($author_name[1]) . '</a>';
+	}
+	
+	$dir_name = dirname($plugin_file);
+	if ('.' == $dir_name) {
+		$dir_name = '';
+	}
+
+	$path = ABSPATH . 'wp-content/plugins' . $dir_name;
+	$url = get_bloginfo('wpurl'). 'wp-conten/plugins' . $dir_name;
+
+	return array ('Name' => $name, 'Title' => $plugin, 'Description' => $description, 'Author' => $author, 'Version' => $version, 'PluginURI' => trim($plugin_uri[1]), 'AuthorURI' => trim($author_uri[1]), 'URL' => $url, 'Path' => $path);
+}
+
+function load_activeplugin_info($plugin_file)
+{
+	global $wp_active_plugins;
+	if (!isset($wp_active_plugins)) {
+		$wp_active_plugins = array();
+	}
+	
+	$plugin_data = get_plugin_data($plugin_file);
+
+	if (!empty($plugin_data['Name'])) {
+		$wp_active_plugins[plugin_basename($plugin_file)] = $plugin_data;
+	}
+}
+
+function get_plugininfo($plugin_filename,$info) {
+	global $wp_active_plugins;
+
+	if (!isset($wp_active_plugins[$plugin_filename])) {
+		return '';
+	}
+	
+	switch($info) {
+		case 'url':
+			return $wp_active_plugins[$plugin_filename]['URL'];
+			break;
+		case 'version':
+			return $wp_active_plugins[$plugin_filename]['Version'];
+			break;
+		case 'path':
+			return $wp_active_plugins[$plugin_filename]['Path'];
+			break;
+		case 'name':
+			return $wp_active_plugins[$plugin_filename]['Name'];
+			break;
+		case 'title':
+			return $wp_active_plugins[$plugin_filename]['Title'];
+			break;
+		case 'description':
+			return $wp_active_plugins[$plugin_filename]['Description'];
+			break;
+		case 'author':
+			return $wp_active_plugins[$plugin_filename]['Author'];
+			break;
+		case 'authoruri':
+			return $wp_active_plugins[$plugin_filename]['AuthorURI'];
+			break;
+		case 'pluginuri':
+			return $wp_active_plugins[$plugin_filename]['PluginURI'];
+			break;
+	}
+}
 ?>
Index: wp-settings.php
===================================================================
--- wp-settings.php	(revision 4106)
+++ wp-settings.php	(working copy)
@@ -168,8 +168,10 @@
 	$current_plugins = get_settings('active_plugins');
 	if ( is_array($current_plugins) ) {
 		foreach ($current_plugins as $plugin) {
-			if ('' != $plugin && file_exists(ABSPATH . 'wp-content/plugins/' . $plugin))
+			if ('' != $plugin && file_exists(ABSPATH . 'wp-content/plugins/' . $plugin)) {
+				load_activeplugin_info(ABSPATH . 'wp-content/plugins/' .$plugin);
 				include_once(ABSPATH . 'wp-content/plugins/' . $plugin);
+			}
 		}
 	}
 }
Index: wp-admin/admin-functions.php
===================================================================
--- wp-admin/admin-functions.php	(revision 4106)
+++ wp-admin/admin-functions.php	(working copy)
@@ -1658,36 +1658,6 @@
 	update_option('recently_edited', $oldfiles);
 }
 
-function get_plugin_data($plugin_file) {
-	$plugin_data = implode('', file($plugin_file));
-	preg_match("|Plugin Name:(.*)|i", $plugin_data, $plugin_name);
-	preg_match("|Plugin URI:(.*)|i", $plugin_data, $plugin_uri);
-	preg_match("|Description:(.*)|i", $plugin_data, $description);
-	preg_match("|Author:(.*)|i", $plugin_data, $author_name);
-	preg_match("|Author URI:(.*)|i", $plugin_data, $author_uri);
-	if (preg_match("|Version:(.*)|i", $plugin_data, $version))
-		$version = trim($version[1]);
-	else
-		$version = '';
-
-	$description = wptexturize(trim($description[1]));
-
-	$name = $plugin_name[1];
-	$name = trim($name);
-	$plugin = $name;
-	if ('' != $plugin_uri[1] && '' != $name) {
-		$plugin = '<a href="' . trim($plugin_uri[1]) . '" title="'.__('Visit plugin homepage').'">'.$plugin.'</a>';
-	}
-
-	if ('' == $author_uri[1]) {
-		$author = trim($author_name[1]);
-	} else {
-		$author = '<a href="' . trim($author_uri[1]) . '" title="'.__('Visit author homepage').'">' . trim($author_name[1]) . '</a>';
-	}
-
-	return array ('Name' => $name, 'Title' => $plugin, 'Description' => $description, 'Author' => $author, 'Version' => $version, 'Template' => $template[1]);
-}
-
 function get_plugins() {
 	global $wp_plugins;
 
