Index: wp-admin/includes/plugin.php
===================================================================
--- wp-admin/includes/plugin.php	(revision 14326)
+++ wp-admin/includes/plugin.php	(working copy)
@@ -274,12 +274,13 @@
  * @return array Key is the mu-plugin file path and the value is an array of the mu-plugin data.
  */
 function get_mu_plugins() {
-	$wp_plugins = array();
+
 	// Files in wp-content/mu-plugins directory
 	$plugin_files = array();
 
 	if ( ! is_dir( WPMU_PLUGIN_DIR ) )
-		return $wp_plugins;
+		return array();
+		
 	if ( $plugins_dir = @ opendir( WPMU_PLUGIN_DIR ) ) {
 		while ( ( $file = readdir( $plugins_dir ) ) !== false ) {
 			if ( substr( $file, -4 ) == '.php' )
@@ -290,26 +291,9 @@
 	@closedir( $plugins_dir );
 
 	if ( !$plugins_dir || empty($plugin_files) )
-		return $wp_plugins;
+		return array();
 
-	foreach ( $plugin_files as $plugin_file ) {
-		if ( !is_readable( WPMU_PLUGIN_DIR . "/$plugin_file" ) )
-			continue;
-
-		$plugin_data = get_plugin_data( WPMU_PLUGIN_DIR . "/$plugin_file", false, false ); //Do not apply markup/translate as it'll be cached.
-
-		if ( empty ( $plugin_data['Name'] ) )
-			$plugin_data['Name'] = $plugin_file;
-
-		$wp_plugins[ $plugin_file ] = $plugin_data;
-	}
-
-	if ( isset( $wp_plugins['index.php'] ) && filesize( WPMU_PLUGIN_DIR . '/index.php') <= 30 ) // silence is golden
-		unset( $wp_plugins['index.php'] );
-
-	uasort( $wp_plugins, create_function( '$a, $b', 'return strnatcasecmp( $a["Name"], $b["Name"] );' ));
-
-	return $wp_plugins;
+	return _filter_plugins_by_dir( $plugin_files, WPMU_PLUGIN_DIR, true );
 }
 
 /**
@@ -319,7 +303,8 @@
  * @return array Key is the file path and the value is an array of the plugin data.
  */
 function get_dropins() {
-	$dropins = array();
+
+	// Files in various dropin locations
 	$plugin_files = array();
 
 	$_dropins = _get_dropins();
@@ -329,26 +314,15 @@
 		while ( ( $file = readdir( $plugins_dir ) ) !== false ) {
 			if ( isset( $_dropins[ $file ] ) )
 				$plugin_files[] = $file;
-			}
+		}
 	}
 
 	@closedir( $plugins_dir );
 
 	if ( !$plugins_dir || empty($plugin_files) )
-			return $dropins;
+		return array();
 
-	foreach ( $plugin_files as $plugin_file ) {
-			if ( !is_readable( WP_CONTENT_DIR . "/$plugin_file" ) )
-					continue;
-			$plugin_data = get_plugin_data( WP_CONTENT_DIR . "/$plugin_file", false, false ); //Do not apply markup/translate as it'll be cached.
-			if ( empty ( $plugin_data['Name'] ) )
-				$plugin_data['Name'] = $plugin_file;
-			$dropins[ $plugin_file ] = $plugin_data;
-	}
-
-	uksort( $dropins, create_function( '$a, $b', 'return strnatcasecmp( $a, $b );' ));
-
-	return $dropins;
+	return _filter_plugins_by_dir( $plugin_files, WP_CONTENT_DIR );
 }
 
 /**
@@ -382,6 +356,40 @@
 }
 
 /**
+ * filter plugins  based on their folder
+ * 
+ * used for mu-plugins, dropins
+ * 
+ * @param array $plugins plugin filenames
+ * @param string $folder folder to verify plugins in
+ * @param bool $test_golden wether or not to test for a directory listing preventing 'silence is golden' (small) index.php file.
+ * @return array filtered plugins
+ */
+function _filter_plugins_by_dir($plugin_files, $folder, $test_golden = false) {
+	$wp_plugins = array();
+	
+	foreach ( $plugin_files as $plugin_file ) {
+		$plugin_path = $folder . '/' . $plugin_file;
+		if ( !is_readable( $plugin_path ) )
+			continue;
+			
+		if ( $test_golden && 'index.php' == $plugin_file && filesize( $plugin_path ) <= 30 ) // silence is golden
+			continue;
+
+		$plugin_data = get_plugin_data( $plugin_path, false, false ); //Do not apply markup/translate as it'll be cached.
+
+		if ( empty ( $plugin_data['Name'] ) )
+			$plugin_data['Name'] = $plugin_file;
+
+		$wp_plugins[ $plugin_file ] = $plugin_data;
+	}
+
+	uasort( $wp_plugins, create_function( '$a, $b', 'return strnatcasecmp( $a["Name"], $b["Name"] );' ));
+
+	return $wp_plugins;
+}
+
+/**
  * Check whether the plugin is active by checking the active_plugins list.
  *
  * @since 2.5.0
