Index: wp-includes/js/jquery/suggest.js
===================================================================
--- wp-includes/js/jquery/suggest.js	(revision 8794)
+++ wp-includes/js/jquery/suggest.js	(working copy)
@@ -130,17 +130,25 @@
 					displayItems(cached['items']);
 					
 				} else {
-				
-					$.get(options.source, {q: q}, function(txt) {
-
+				    var process = function(txt) {
 						$results.hide();
-						
 						var items = parseTxt(txt, q);
-						
 						displayItems(items);
-						addToCache(q, items, txt.length);
-						
-					});
+						addToCache(q, items, txt.length);	
+					};
+					if ('string' == typeof options.source)
+						$.get(options.source, {q: q}, process);
+					else if ($.isFunction(options.source))
+						process(options.source(q));
+					else if (options.source instanceof Array) {
+						q = q.toLowerCase();
+						res = [];
+						for(i=0; i<options.source.length; ++i) {
+							if (options.source[i].toLowerCase().indexOf(q) >= 0)
+								res[res.length] = options.source[i];
+						}
+						process(res);
+					}
 					
 				}
 				
@@ -217,7 +225,7 @@
 		function parseTxt(txt, q) {
 			
 			var items = [];
-			var tokens = txt.split(options.delimiter);
+			var tokens = txt instanceof Array ? txt : txt.split(options.delimiter);
 			
 			// parse returned data for non-empty items
 			for (var i = 0; i < tokens.length; i++) {
Index: wp-includes/script-loader.php
===================================================================
--- wp-includes/script-loader.php	(revision 8794)
+++ wp-includes/script-loader.php	(working copy)
@@ -44,7 +44,7 @@
 	$scripts->base_url = $guessurl;
 	$scripts->default_version = get_bloginfo( 'version' );
 
-	$scripts->add( 'common', '/wp-admin/js/common.js', array('jquery', 'user-settings'), '20080318' );
+	$scripts->add( 'common', '/wp-admin/js/common.js', array('jquery', 'user-settings', 'suggest'), '20080904' );
 	$scripts->add( 'sack', '/wp-includes/js/tw-sack.js', false, '1.6.1' );
 
 	$scripts->add( 'quicktags', '/wp-includes/js/quicktags.js', false, '20080823' );
@@ -285,7 +285,7 @@
 
 	$rtl_styles = array( 'global', 'colors', 'dashboard', 'ie', 'install', 'login', 'media', 'theme-editor', 'upload', 'widgets', 'press-this', 'press-this-ie' );
 
-	$styles->add( 'wp-admin', '/wp-admin/wp-admin.css', array(), '20080829' );
+	$styles->add( 'wp-admin', '/wp-admin/wp-admin.css', array(), '20080904' );
 	$styles->add_data( 'wp-admin', 'rtl', '/wp-admin/rtl.css' );
 
 	$styles->add( 'ie', '/wp-admin/css/ie.css' );
Index: wp-admin/menu-header.php
===================================================================
--- wp-admin/menu-header.php	(revision 8794)
+++ wp-admin/menu-header.php	(working copy)
@@ -115,6 +115,8 @@
 <ul id="adminmenu" class="wp-menu">
 
 <li class="write-new-button"><a class="button-secondary" href="post-new.php"><?php _e( 'Write New Post' ); ?></a></li>
+<li><input type="text" id="menusearch" value="" /></li>
+
 <?php
 
 _wp_menu_output( $menu, $submenu );
Index: wp-admin/wp-admin.css
===================================================================
--- wp-admin/wp-admin.css	(revision 8794)
+++ wp-admin/wp-admin.css	(working copy)
@@ -657,7 +657,9 @@
 	text-align: center;
 	color: #246;
 }
-	
+ul#adminmenu input#menusearch {
+	width: 10em;
+}
 
 #wphead h1 {
 	font: normal 36px Georgia, "Times New Roman", Times, serif;
Index: wp-admin/js/common.js
===================================================================
--- wp-admin/js/common.js	(revision 8794)
+++ wp-admin/js/common.js	(working copy)
@@ -69,3 +69,23 @@
 } );
 
 //jQuery(function(){jQuery('#media-buttons a').tTips();});
+
+jQuery( function($) {
+	var link_href = {};
+	var links = [];
+	function press_key( e ) {
+		if ( 13 == e.keyCode ) {
+			var href = link_href[$('#menusearch').val().toLowerCase()];
+			if (href) window.location = href;
+ 			return false;
+		}
+	};
+	$('#menusearch').keypress(press_key);
+	$('ul#adminmenu a').each(function(){
+		var text = $.trim($(this).text());
+		var href = this.href;
+		links[links.length] = text;
+		link_href[text.toLowerCase()] = href;
+	});
+	$('#menusearch').suggest( links, { delay: 100, minchars: 2, multiple: false } );
+} );
\ No newline at end of file
