Index: wp-admin/js/common.js
===================================================================
--- wp-admin/js/common.js	(revision 21695)
+++ wp-admin/js/common.js	(working copy)
@@ -1,9 +1,41 @@
 var showNotice, adminMenu, columns, validateForm, screenMeta;
 (function($){
-// Removed in 3.3.
-// (perhaps) needed for back-compat
+
 adminMenu = {
-	init : function() {},
+	adminMenuWrap : null,
+	bodyMinWidth : null,
+	wpWrapOffset : null,
+	rejectedBrowser : null,
+
+	init : function() {
+		this.adminMenuWrap = $('#adminmenuwrap');
+		this.bodyMinWidth = parseInt($(document.body).css('min-width'));
+		this.wpWrapOffset = $('#wpwrap').offset();
+
+		// reject mobile devices, except iPads
+		if ( !$(document.body).hasClass('mobile') || /iPad/.test( navigator.userAgent ) )
+			this.rejectedBrowser = false;
+		else 
+			this.rejectedBrowser = true;
+
+		$(window).on('resize scoll', function() { adminMenu.position(); } );
+		this.position();
+	},
+
+	position : function() {
+		if ( !this.rejectedBrowser ) {
+			// is the viewport higher than the admin menu (incl. toolbar height) && is the viewport wider than the min-width of the <body>
+			if ( $(window).height() > ( this.adminMenuWrap.height() + this.wpWrapOffset.top ) && $(window).width() > this.bodyMinWidth ) {
+				if ( !this.adminMenuWrap.hasClass('fixed') ) {
+					this.adminMenuWrap.addClass('fixed');
+				}
+			} else if ( this.adminMenuWrap.hasClass('fixed') ) {
+				this.adminMenuWrap.removeClass('fixed');
+			}
+		}
+	},
+
+	// methods removed in 3.3, (perhaps) needed for back-compat
 	fold : function() {},
 	restoreMenuState : function() {},
 	toggle : function() {},
@@ -168,6 +200,9 @@
 		$(e.target).parent().siblings('a').get(0).click();
 	});
 
+	// initialize admin menu
+	adminMenu.init();
+
 	$('#collapse-menu').on('click.collapse-menu', function(e){
 		var body = $(document.body);
 
@@ -193,6 +228,9 @@
 				setUserSetting('mfold', 'f');
 			}
 		}
+
+		// in case the menu expanded, reposition menu (if necessary)
+		adminMenu.position();
 	});
 
 	$('li.wp-has-submenu', menu).hoverIntent({
Index: wp-admin/css/wp-admin-rtl.css
===================================================================
--- wp-admin/css/wp-admin-rtl.css	(revision 21695)
+++ wp-admin/css/wp-admin-rtl.css	(working copy)
@@ -1625,6 +1625,10 @@
 	float: right;
 }
 
+#adminmenuwrap.fixed {
+	right: 0;
+}
+
 #adminmenu {
 	clear: right;
 }
Index: wp-admin/css/wp-admin.css
===================================================================
--- wp-admin/css/wp-admin.css	(revision 21695)
+++ wp-admin/css/wp-admin.css	(working copy)
@@ -1318,6 +1318,12 @@
 	float: left;
 }
 
+#adminmenuwrap.fixed {
+	position: fixed;
+	top: 28px;
+	left: 0;
+}
+
 #adminmenushadow {
 	position: absolute;
 	top: 0;
