Index: wp-admin/includes/plugin.php
===================================================================
--- wp-admin/includes/plugin.php	(revision 8060)
+++ wp-admin/includes/plugin.php	(working copy)
@@ -22,21 +22,20 @@
 		$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);
 }
 
 function get_plugins($plugin_folder = '') {
-	global $wp_plugins;
 
-	if ( isset( $wp_plugins ) ) {
-		return $wp_plugins;
-	}
+	$cache_plugins = wp_cache_get('plugins', 'plugins');
+	if( $cache_plugins[ $plugin_folder ] )
+		return $cache_plugins[ $plugin_folder ];
 
 	$wp_plugins = array ();
 	$plugin_root = WP_PLUGIN_DIR;
@@ -85,6 +84,9 @@
 
 	uasort( $wp_plugins, create_function( '$a, $b', 'return strnatcasecmp( $a["Name"], $b["Name"] );' ));
 
+	$cache_plugins[ $plugin_folder ] = $wp_plugins;
+	wp_cache_set('plugins', $cache_plugins, 'plugins');
+
 	return $wp_plugins;
 }
 
Index: wp-admin/plugins.php
===================================================================
--- wp-admin/plugins.php	(revision 8060)
+++ wp-admin/plugins.php	(working copy)
@@ -83,15 +83,8 @@
 
 			$delete_result = delete_plugins($plugins);
 			
-			//HACK TIME!
-			// Proper way needed, perhaps get_plugins() to convert to wp_cache_get() any reason why it hasnt allready?
-			// This clears the cached plugin list
-			global $wp_plugins;
-			$wp_plugins = null;
-			
-			
-				
-			//TODO: Implement!.. STAT!
+			wp_cache_delete('plugins', 'plugins');
+
 			break;
 		default:
 			var_dump("Unknown Action $action");
Index: wp-settings.php
===================================================================
--- wp-settings.php	(revision 8060)
+++ wp-settings.php	(working copy)
@@ -222,7 +222,7 @@
 wp_cache_init();
 if ( function_exists('wp_cache_add_global_groups') ) {
 	wp_cache_add_global_groups(array ('users', 'userlogins', 'usermeta'));
-	wp_cache_add_non_persistent_groups(array( 'comment', 'counts' ));
+	wp_cache_add_non_persistent_groups(array( 'comment', 'counts', 'plugins' ));
 }
 
 require (ABSPATH . WPINC . '/plugin.php');
