Index: wp-includes/js/admin-bar-menu-mobile.dev.js
===================================================================
--- wp-includes/js/admin-bar-menu-mobile.dev.js	(revision 0)
+++ wp-includes/js/admin-bar-menu-mobile.dev.js	(revision 0)
@@ -0,0 +1,54 @@
+if( 'undefined' != typeof( jQuery ) ){
+
+	jQuery(document).ready(function($){
+
+		var wpAdminBarChildren = $('#wpadminbar li.menupop');
+		if( wpAdminBarChildren.length ){
+
+			var wpAdminBarMobileHide = function(e){
+				if( ! $(e.target).closest('#wpadminbar').length ){
+					wpAdminBarChildren.removeClass('hover');
+					$(document.body).unbind( 'click', wpAdminBarMobileHide );
+				}
+			}
+
+			wpAdminBarChildren.click(function(e){
+				if( ! $(this).hasClass('hover') ){
+					e.preventDefault();
+					wpAdminBarChildren.removeClass('hover');
+					$(this).addClass('hover');
+					$(document.body).bind( 'click', wpAdminBarMobileHide );
+					return;
+				}
+			});
+
+		}
+
+		var wpAdminMenuChildren = $('#adminmenu > li.wp-has-submenu.wp-not-current-submenu');
+		if( wpAdminMenuChildren.length ){
+
+			var wpAdminMenuMobileHide = function(e){
+				if( ! $(e.target).closest('#adminmenu').length ){
+					wpAdminMenuChildren.removeClass('hover').children('.wp-submenu.sub-open').removeClass('sub-open');
+					$(document.body).unbind( 'click', wpAdminMenuMobileHide );
+				}
+			}
+
+			wpAdminMenuChildren.click(function(e){
+				if( ! $(this).hasClass('hover') ){
+					e.preventDefault();
+					wpAdminMenuChildren.removeClass('hover').children('.wp-submenu.sub-open').removeClass('sub-open');
+					$(this).addClass('hover').children('.wp-submenu').addClass('sub-open');
+					$(document.body).bind( 'click', wpAdminMenuMobileHide );
+					return;
+				}
+			});
+
+		}
+	});
+
+}else{
+
+	// fallback?
+
+}
\ No newline at end of file
Index: wp-includes/script-loader.php
===================================================================
--- wp-includes/script-loader.php	(revision 20717)
+++ wp-includes/script-loader.php	(working copy)
@@ -272,6 +272,7 @@
 	$scripts->add( 'site-search', "/wp-admin/js/site-search$suffix.js", array( 'jquery-ui-autocomplete' ), false, 1 );
 
 	$scripts->add( 'admin-bar', "/wp-includes/js/admin-bar$suffix.js", array(), false, 1 );
+	$scripts->add( 'admin-bar-menu-mobile', "/wp-includes/js/admin-bar-menu-mobile$suffix.js", array(), false, 1 );
 
 	$scripts->add( 'wplink', "/wp-includes/js/wplink$suffix.js", array( 'jquery', 'wpdialogs' ), false, 1 );
 	$scripts->localize( 'wplink', 'wpLinkL10n', array(
Index: wp-includes/class-wp-admin-bar.php
===================================================================
--- wp-includes/class-wp-admin-bar.php	(revision 20717)
+++ wp-includes/class-wp-admin-bar.php	(working copy)
@@ -49,6 +49,10 @@
 
 		wp_enqueue_script( 'admin-bar' );
 		wp_enqueue_style( 'admin-bar' );
+		
+		if( isset( $GLOBALS['is_mobile'] ) && $GLOBALS['is_mobile'] ){
+			wp_enqueue_script( 'admin-bar-menu-mobile' );
+		}
 
 		do_action( 'admin_bar_init' );
 	}
Index: wp-admin/admin-header.php
===================================================================
--- wp-admin/admin-header.php	(revision 20717)
+++ wp-admin/admin-header.php	(working copy)
@@ -45,6 +45,8 @@
 wp_enqueue_style( 'colors' );
 wp_enqueue_style( 'ie' );
 wp_enqueue_script('utils');
+if ( wp_is_mobile() )
+	wp_enqueue_script( 'admin-bar-menu-mobile' );
 
 $admin_body_class = preg_replace('/[^a-z0-9_-]+/i', '-', $hook_suffix);
 ?>
