Index: wp-admin/plugins.php
===================================================================
--- wp-admin/plugins.php	(revision 21081)
+++ wp-admin/plugins.php	(working copy)
@@ -197,6 +197,7 @@
 			exit;
 			break;
 		case 'delete-selected':
+		case 'delete-selected-no-uninstall':
 			if ( ! current_user_can('delete_plugins') )
 				wp_die(__('You do not have sufficient permissions to delete plugins for this site.'));
 
@@ -282,16 +283,39 @@
 				else
 					_e('Are you sure you wish to delete these files?');
 				?></p>
-				<form method="post" action="<?php echo esc_url($_SERVER['REQUEST_URI']); ?>" style="display:inline;">
-					<input type="hidden" name="verify-delete" value="1" />
-					<input type="hidden" name="action" value="delete-selected" />
-					<?php
-						foreach ( (array) $plugins as $plugin )
-							echo '<input type="hidden" name="checked[]" value="' . esc_attr($plugin) . '" />';
-					?>
-					<?php wp_nonce_field('bulk-plugins') ?>
-					<?php submit_button( $data_to_delete ? __( 'Yes, Delete these files and data' ) : __( 'Yes, Delete these files' ), 'button', 'submit', false ); ?>
-				</form>
+				<?php if ( $data_to_delete  ) : ?>
+					<form method="post" action="<?php echo esc_url($_SERVER['REQUEST_URI']); ?>" style="display:inline;">
+						<input type="hidden" name="verify-delete" value="1" />
+						<input type="hidden" name="action" value="delete-selected" />
+						<?php
+							foreach ( (array) $plugins as $plugin )
+								echo '<input type="hidden" name="checked[]" value="' . esc_attr($plugin) . '" />';
+						?>
+						<?php wp_nonce_field('bulk-plugins') ?>
+						<?php submit_button( __( 'Yes, Delete these files and data' ) , 'button', 'submit', false ); ?>
+					</form>
+					<form method="post" action="<?php echo esc_url($_SERVER['REQUEST_URI']); ?>" style="display:inline;">
+						<input type="hidden" name="verify-delete" value="1" />
+						<input type="hidden" name="action" value="delete-selected-no-uninstall" />
+						<?php
+							foreach ( (array) $plugins as $plugin )
+								echo '<input type="hidden" name="checked[]" value="' . esc_attr($plugin) . '" />';
+						?>
+						<?php wp_nonce_field('bulk-plugins') ?>
+						<?php submit_button( __( 'Yes, Delete only the files' ) , 'button', 'submit', false ); ?>
+					</form>
+				<?php else : ?>
+					<form method="post" action="<?php echo esc_url($_SERVER['REQUEST_URI']); ?>" style="display:inline;">
+						<input type="hidden" name="verify-delete" value="1" />
+						<input type="hidden" name="action" value="delete-selected" />
+						<?php
+							foreach ( (array) $plugins as $plugin )
+								echo '<input type="hidden" name="checked[]" value="' . esc_attr($plugin) . '" />';
+						?>
+						<?php wp_nonce_field('bulk-plugins') ?>
+						<?php submit_button( __( 'Yes, Delete these files' ), 'button', 'submit', false ); ?>
+					</form>
+				<?php endif; ?>				
 				<form method="post" action="<?php echo esc_url(wp_get_referer()); ?>" style="display:inline;">
 					<?php submit_button( __( 'No, Return me to the plugin list' ), 'button', 'submit', false ); ?>
 				</form>
@@ -310,7 +334,7 @@
 				require_once(ABSPATH . 'wp-admin/admin-footer.php');
 				exit;
 			} //Endif verify-delete
-			$delete_result = delete_plugins($plugins);
+			$delete_result = delete_plugins($plugins, '', ( 'delete-selected' == $action ) );
 
 			set_transient('plugins_delete_result_' . $user_ID, $delete_result); //Store the result in a cache rather than a URL param due to object type & length
 			wp_redirect( self_admin_url("plugins.php?deleted=true&plugin_status=$status&paged=$page&s=$s") );
Index: wp-admin/includes/plugin.php
===================================================================
--- wp-admin/includes/plugin.php	(revision 21081)
+++ wp-admin/includes/plugin.php	(working copy)
@@ -666,9 +666,10 @@
  *
  * @param array $plugins List of plugin
  * @param string $redirect Redirect to page when complete.
+ * @param bool $run_uninstall Should the plugin's uninstall routine be run?
  * @return mixed
  */
-function delete_plugins($plugins, $redirect = '' ) {
+function delete_plugins($plugins, $redirect = '', $run_uninstall = true ) {
 	global $wp_filesystem;
 
 	if ( empty($plugins) )
@@ -722,7 +723,7 @@
 
 	foreach( $plugins as $plugin_file ) {
 		// Run Uninstall hook
-		if ( is_uninstallable_plugin( $plugin_file ) )
+		if ( $run_uninstall && is_uninstallable_plugin( $plugin_file ) )
 			uninstall_plugin($plugin_file);
 
 		$this_plugin_dir = trailingslashit( dirname($plugins_dir . $plugin_file) );
