Index: wp-admin/js/common.dev.js
===================================================================
--- wp-admin/js/common.dev.js	(revision 21273)
+++ wp-admin/js/common.dev.js	(working copy)
@@ -95,11 +95,29 @@
 	page:    null, // #wpcontent
 
 	init: function() {
+		var self = this;
+
 		this.element = $('#screen-meta');
 		this.toggles = $('.screen-meta-toggle a');
 		this.page    = $('#wpcontent');
 
 		this.toggles.click( this.toggleEvent );
+
+		$(document).ready( function(){
+			self.autoOpen(); // that happens too early when the page is not cached, may need to run on $(window).load()
+
+			if ( 'onhashchange' in window ) {
+				$(window).bind('hashchange.help-tabs', function(){
+					self.autoOpen();
+				});
+			} else { // IE7
+				$(document.body).bind('click.help-tabs', function(e){
+					if ( e.target.href && /^#.+/.test(e.target.href) ) { // only links where href="#something"
+						self.autoOpen(e.target.href); // no need to prevent default as the link doesn't go to another page
+					}
+				});
+			}
+		});
 	},
 
 	toggleEvent: function( e ) {
@@ -131,12 +149,33 @@
 			$('.screen-meta-toggle').css('visibility', '');
 			panel.parent().hide();
 		});
+
+		screenMeta.updateHash();
+	},
+
+	updateHash: function( hash ) {
+		hash = hash || '';
+		window.location.hash = hash;
+	},
+	
+	autoOpen : function(hash) {
+		var panel = hash || window.location.hash;
+	
+		if ( $(panel).length ) {
+			// Activate the panel.
+			$('.contextual-help-tabs li, div.help-tab-content').removeClass('active');
+			$(panel+', '+panel.replace(/tab-panel-/, 'tab-link-')).addClass('active');
+	
+			// Scroll to the top.
+			$('html').animate({ scrollTop: 0 }, 'fast', function(){
+				// Open the help panel if needed.
+				if ( ! $('#contextual-help-wrap').is(':visible') )
+					screenMeta.open( $('#contextual-help-wrap'), $('#contextual-help-link') );
+			});
+		};
 	}
 };
 
-/**
- * Help tabs.
- */
 $('.contextual-help-tabs').delegate('a', 'click focus', function(e) {
 	var link = $(this),
 		panel;
@@ -144,7 +183,7 @@
 	e.preventDefault();
 
 	// Don't do anything if the click is for the tab already showing.
-	if ( link.is('.active a') )
+	if ( link.parent().hasClass('active') )
 		return false;
 
 	// Links
@@ -153,9 +192,11 @@
 
 	panel = $( link.attr('href') );
 
+	screenMeta.updateHash( $(panel).attr('id') );
+
 	// Panels
-	$('.help-tab-content').not( panel ).removeClass('active').hide();
-	panel.addClass('active').show();
+	$('.help-tab-content.active').removeClass('active');
+	panel.addClass('active');
 });
 
 $(document).ready( function() {
