Index: src/wp-admin/css/admin-menu.css
===================================================================
--- src/wp-admin/css/admin-menu.css	(revision 33054)
+++ src/wp-admin/css/admin-menu.css	(working copy)
@@ -920,6 +920,10 @@
 		-moz-box-sizing: border-box;
 		box-sizing: border-box;
 	}
+
+	.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before {
+		color: #00b9eb;
+	}
 }
 
 /* Smartphone */
Index: src/wp-includes/css/admin-bar.css
===================================================================
--- src/wp-includes/css/admin-bar.css	(revision 33054)
+++ src/wp-includes/css/admin-bar.css	(working copy)
@@ -207,17 +207,17 @@
 	right: 100%;
 }
 
-#wpadminbar .ab-top-menu > li > .ab-item:focus,
+#wpadminbar:not(.mobile) .ab-top-menu > li > .ab-item:focus,
 #wpadminbar.nojq .quicklinks .ab-top-menu > li > .ab-item:focus,
-#wpadminbar .ab-top-menu > li:hover > .ab-item,
+#wpadminbar:not(.mobile) .ab-top-menu > li:hover > .ab-item,
 #wpadminbar .ab-top-menu > li.hover > .ab-item {
 	background: #32373c;
 	color: #00b9eb;
 }
 
-#wpadminbar > #wp-toolbar li:hover span.ab-label,
+#wpadminbar:not(.mobile) > #wp-toolbar li:hover span.ab-label,
 #wpadminbar > #wp-toolbar li.hover span.ab-label,
-#wpadminbar > #wp-toolbar a:focus span.ab-label {
+#wpadminbar:not(.mobile) > #wp-toolbar a:focus span.ab-label {
 	color: #00b9eb;
 }
 
@@ -287,6 +287,16 @@
 	color: #00b9eb;
 }
 
+#wpadminbar.mobile .quicklinks .ab-icon:before,
+#wpadminbar.mobile .quicklinks .ab-item:before {
+	color: #b4b9be;
+}
+
+#wpadminbar.mobile .quicklinks .hover .ab-icon:before,
+#wpadminbar.mobile .quicklinks .hover .ab-item:before {
+	color: #00b9eb;
+}
+
 #wpadminbar .menupop .menupop > .ab-item:before,
 #wpadminbar .ab-top-secondary .menupop .menupop > .ab-item:before {
 	position: absolute;
Index: src/wp-includes/js/admin-bar.js
===================================================================
--- src/wp-includes/js/admin-bar.js	(revision 33054)
+++ src/wp-includes/js/admin-bar.js	(working copy)
@@ -28,6 +28,12 @@
 					e.stopPropagation();
 					e.preventDefault();
 					el.addClass('hover');
+				} else if ( ! $( e.target ).closest( 'div' ).hasClass( 'ab-sub-wrapper' ) ) {
+					// We're dealing with an already-touch-opened menu genericon (we know el.hasClass('hover')),
+					// so close it and prevent propag and defaults. See #29906
+					e.stopPropagation();
+					e.preventDefault();
+					el.removeClass('hover');
 				}
 
 				if ( unbind ) {
@@ -124,8 +130,13 @@
 		});
 
 		$('#wpadminbar').click( function(e) {
-			if ( e.target.id != 'wpadminbar' && e.target.id != 'wp-admin-bar-top-secondary' )
+			if ( e.target.id != 'wpadminbar' && e.target.id != 'wp-admin-bar-top-secondary' ) {
 				return;
+			} else {
+				adminbar.find( 'li.menupop.hover' ).removeClass( 'hover' );
+				e.stopPropagation();
+				return;
+			}
 
 			e.preventDefault();
 			$('html, body').animate({ scrollTop: 0 }, 'fast');
