Index: wp-admin/includes/template.php
===================================================================
--- wp-admin/includes/template.php	(revision 10201)
+++ wp-admin/includes/template.php	(working copy)
@@ -3318,10 +3318,20 @@
 		$show_screen = true;
 ?>
 <div id="screen-meta">
+<div id="screen-options-wrap" class="hidden">
+<h5><?php _e('Menu Comfort'); ?></h5>
+<form id="adv-settings" action="" method="get">
+	<div class="metabox-prefs">
+	<label for="mstate">
+		<input name="mstate" type="checkbox" class="msetting" id="mstate" />Forget state on reload</label>
+	<label for="mhov">
+		<input name="mhov" type="checkbox" class="msetting" id="mhov" /><?php _e("Don't expand on hover") ?></label>
+	<br class="clear" />
+</div>
+</form>
 <?php
 	if ( $show_screen ) :
 ?>
-<div id="screen-options-wrap" class="hidden">
 	<h5><?php _e('Show on screen') ?></h5>
 	<form id="adv-settings" action="" method="get">
 	<div class="metabox-prefs">
@@ -3333,10 +3343,12 @@
 ?>
 	<br class="clear" />
 	</div></form>
+<?php
+	endif;
+?>
 </div>
 
 <?php
-	endif;
 
 	global $title;
 
Index: wp-admin/js/common.js
===================================================================
--- wp-admin/js/common.js	(revision 10201)
+++ wp-admin/js/common.js	(working copy)
@@ -156,7 +156,6 @@
 				$('#show-settings-link').css({'backgroundImage':'url("images/screen-options-right.gif")'});
 				$('#contextual-help-link-wrap').removeClass('invisible');
 				$(this).removeClass('screen-options-open');
-
 			} else {
 				$('#show-settings-link').css({'backgroundImage':'url("images/screen-options-right-up.gif")'});
 				$(this).addClass('screen-options-open');
@@ -183,6 +182,14 @@
 		return false;
 	});
 
+	// menu options
+	$('.msetting').each( function() {
+		$(this).click(function(){setUserSetting($(this).attr('id'),($(this).attr("checked")==true)?'n':'y');})
+			.attr("checked",(getUserSetting($(this).attr('id'))=='n')?true:false);
+	});
+
+	$('#adminmenu li.wp-has-submenu').hoverIntent(adminMenu.hoverSettings);
+
 	// check all checkboxes
 	var lastClicked = false;
 	$( 'table:visible tbody .check-column :checkbox' ).click( function(e) {
@@ -278,8 +285,17 @@
 
 	restoreMenuState : function() {
 		$('#adminmenu li.wp-has-submenu').each(function(i, e) {
+			if( 'n' == getUserSetting( 'mstate' ) ){
+				if($(e).hasClass('wp-has-current-submenu'))
+					$(e).addClass('pinned');
+				else
+					$(e).removeClass('wp-menu-open');
+				return true;
+			}
 			var v = getUserSetting( 'm'+i );
-			if ( $(e).hasClass('wp-has-current-submenu') ) return true; // leave the current parent open
+			if ( $(e).hasClass('wp-has-current-submenu') ) {
+					$(e).addClass('pinned'); return true;
+					} // leave the current parent open
 
 			if ( 'o' == v ) $(e).addClass('wp-menu-open');
 			else if ( 'c' == v ) $(e).removeClass('wp-menu-open');
@@ -287,21 +303,50 @@
 	},
 
 	toggle : function(el) {
+		if(getUserSetting('mhov')=='n') {
+			var effect=(el.parent().hasClass('pinned'))?'slideUp':'slideDown';
+			el[effect](150, function(){el.css({'display':''});}).parent()
+			.toggleClass('wp-menu-open').toggleClass('pinned');
+		}
+		else
+			el.parent().toggleClass('pinned');
 
-		el['slideToggle'](150, function(){el.css('display','');}).parent().toggleClass( 'wp-menu-open' );
-
 		$('#adminmenu li.wp-has-submenu').each(function(i, e) {
-			var v = $(e).hasClass('wp-menu-open') ? 'o' : 'c';
+			var v = $(e).hasClass('pinned') ? 'o' : 'c';
 			setUserSetting( 'm'+i, v );
 		});
 
 		return false;
 	},
 
+	hover : function(el,act) {
+		if(getUserSetting('mhov')=='n') return true;
+		var eff='',tog='';
+		if(el.parent().hasClass('pinned'))
+			if(el.parent().hasClass('wp-menu-open')) return true;
+			else {eff='slideDown';tog='addClass';}
+		if(act=='hide'){eff='slideUp';tog='removeClass';}	//wierd fix
+		el[(eff)?eff:'slideToggle'](300, function(){el.css({'display':''});})
+		.parent()[(tog)?tog:'toggleClass']('wp-menu-open');
+	},
+
+	hoverSettings :{
+		over: function(e){
+			adminMenu.hover( $(this).find('.wp-submenu') ,"show" );
+		},
+		out: function(e){
+			adminMenu.hover( $(this).find('.wp-submenu'), "hide" );
+		},
+		timeout: 10,	//match toggle time
+		sensitivity: 8,
+		interval: 200
+	},
+
 	fold : function(off) {
 		if (off) {
 			$('#wpcontent').removeClass('folded');
 			$('#adminmenu li.wp-has-submenu').unbind();
+			$('#adminmenu li.wp-has-submenu').hoverIntent(adminMenu.hoverSettings);
 		} else {
 			$('#wpcontent').addClass('folded');
 			$('#adminmenu li.wp-has-submenu').hoverIntent({
