Index: wp-includes/js/jquery/jquery.shiftcheckbox.js
===================================================================
--- wp-includes/js/jquery/jquery.shiftcheckbox.js	(revision 0)
+++ wp-includes/js/jquery/jquery.shiftcheckbox.js	(revision 0)
@@ -0,0 +1,83 @@
+/**
+ * JQuery shiftcheckbox plugin
+ *
+ * shiftcheckbox provides a simpler and faster way to select/unselect multiple checkboxes within a given range with just two clicks.
+ * Inspired from GMail checkbox functionality
+ *
+ * Just call $('.<class-name>').shiftcheckbox() in $(document).ready
+ *
+ * @name shiftcheckbox
+ * @type jquery
+ * @cat Plugin/Form
+ * @return JQuery
+ *
+ * @URL http://www.sanisoft.com/blog/2009/07/02/jquery-shiftcheckbox-plugin
+ *
+ * Copyright (c) 2009 Aditya Mooley <adityamooley@sanisoft.com>
+ * Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses
+ */
+
+(function ($) {
+    $.fn.shiftcheckbox = function()
+    {
+        var prevChecked = null;
+
+        selectorStr = this;
+
+        $(selectorStr).bind("click", handleClick);
+    };
+
+    function handleClick(event)
+    {
+        var val = this.value;
+        var checkStatus = this.checked;
+        //get the checkbox number which the user has checked
+
+        //check whether user has pressed shift
+        if (event.shiftKey) {
+            if (prevChecked != 'null') {
+                //get the current checkbox number
+                var ind = 0, found = 0, currentChecked;
+                currentChecked = getSelected(val);
+
+                ind = 0;
+                if (currentChecked < prevChecked) {
+                    $(selectorStr).each(function(i) {
+                        if (ind >= currentChecked && ind <= prevChecked) {
+                            this.checked = checkStatus;
+                        }
+                        ind++;
+                    });
+                } else {
+                    $(selectorStr).each(function(i) {
+                        if (ind >= prevChecked && ind <= currentChecked) {
+                            this.checked = checkStatus;
+                        }
+                        ind++;
+                    });
+                }
+
+                prevChecked = currentChecked;
+            }
+        } else {
+            if (checkStatus) {
+                prevChecked = getSelected(val);
+            }
+        }
+    };
+
+    function getSelected(val)
+    {
+        var ind = 0, found = 0, checkedIndex;
+
+        $(selectorStr).each(function(i) {
+            if (val == this.value && found != 1) {
+                checkedIndex = ind;
+                found = 1;
+            }
+            ind++;
+        });
+
+        return checkedIndex;
+    };
+})(jQuery);
\ No newline at end of file
Index: wp-includes/script-loader.php
===================================================================
--- wp-includes/script-loader.php	(revision 23386)
+++ wp-includes/script-loader.php	(working copy)
@@ -185,6 +185,7 @@
 	$scripts->add( 'jquery-table-hotkeys', "/wp-includes/js/jquery/jquery.table-hotkeys$suffix.js", array('jquery', 'jquery-hotkeys'), false, 1 );
 	$scripts->add( 'jquery-touch-punch', "/wp-includes/js/jquery/jquery.ui.touch-punch.js", array('jquery-ui-widget', 'jquery-ui-mouse'), '0.2.2', 1 );
 	$scripts->add( 'jquery-masonry', "/wp-includes/js/jquery/jquery.masonry.min.js", array('jquery'), '2.1.05', 1 );
+	$scripts->add( 'jquery-shiftcheckbox', "/wp-includes/js/jquery/jquery.shiftcheckbox.min.js", array('jquery'), false, 1 );
 
 	$scripts->add( 'thickbox', "/wp-includes/js/thickbox/thickbox.js", array('jquery'), '3.1-20121105', 1 );
 	did_action( 'init' ) && $scripts->localize( 'thickbox', 'thickboxL10n', array(
Index: wp-admin/js/common.js
===================================================================
--- wp-admin/js/common.js	(revision 23386)
+++ wp-admin/js/common.js	(working copy)
@@ -326,6 +326,8 @@
 			return false;
 		});
 	});
+	
+	$('th.check-column input').shiftcheckbox();
 
 	$('#default-password-nag-no').click( function() {
 		setUserSetting('default_password_nag', 'hide');
Index: wp-admin/admin-header.php
===================================================================
--- wp-admin/admin-header.php	(revision 23386)
+++ wp-admin/admin-header.php	(working copy)
@@ -45,6 +45,7 @@
 wp_enqueue_style( 'colors' );
 wp_enqueue_style( 'ie' );
 wp_enqueue_script('utils');
+wp_enqueue_script( 'jquery-shiftcheckbox' );
 
 $admin_body_class = preg_replace('/[^a-z0-9_-]+/i', '-', $hook_suffix);
 ?>
