Index: wp-admin/includes/template.php
===================================================================
--- wp-admin/includes/template.php	(revision 17844)
+++ wp-admin/includes/template.php	(working copy)
@@ -2141,6 +2141,20 @@
 }
 
 /**
+ * Set an attribute for the current screen object
+ *
+ * @since 3.2.0
+ *
+ * @param string $key An attribute name
+ * @param mixed $value Attribute value
+ */
+function set_screen_attribute( $key, $value ) {
+	global $current_screen;	
+
+	$current_screen->$key = $value;
+}
+
+/**
  * Echos a submit button, with provided text and appropriate class
  *
  * @since 3.1.0
Index: wp-admin/edit-tags.php
===================================================================
--- wp-admin/edit-tags.php	(revision 17844)
+++ wp-admin/edit-tags.php	(working copy)
@@ -221,6 +221,11 @@
 	unset($help);
 }
 
+set_screen_attribute( 'title', $title );
+
+if ( !empty($_REQUEST['s']) )
+	set_screen_attribute( 'subtitle', sprintf( __( 'Search results for &#8220;%s&#8221;' ), esc_html( stripslashes($_REQUEST['s']) ) ) );
+
 require_once ('admin-header.php');
 
 if ( !current_user_can($tax->cap->edit_terms) )
@@ -236,11 +241,6 @@
 ?>
 
 <div class="wrap nosubsub">
-<?php screen_icon(); ?>
-<h2><?php echo esc_html( $title );
-if ( !empty($_REQUEST['s']) )
-	printf( '<span class="subtitle">' . __('Search results for &#8220;%s&#8221;') . '</span>', esc_html( stripslashes($_REQUEST['s']) ) ); ?>
-</h2>
 
 <?php if ( isset($_REQUEST['message']) && ( $msg = (int) $_REQUEST['message'] ) ) : ?>
 <div id="message" class="updated"><p><?php echo $messages[$msg]; ?></p></div>
Index: wp-admin/options-general.php
===================================================================
--- wp-admin/options-general.php	(revision 17844)
+++ wp-admin/options-general.php	(working copy)
@@ -74,8 +74,6 @@
 ?>
 
 <div class="wrap">
-<?php screen_icon(); ?>
-<h2><?php echo esc_html( $title ); ?></h2>
 
 <form method="post" action="options.php">
 <?php settings_fields('general'); ?>
Index: wp-admin/index.php
===================================================================
--- wp-admin/index.php	(revision 17844)
+++ wp-admin/index.php	(working copy)
@@ -55,11 +55,6 @@
 ?>
 
 <div class="wrap">
-<?php screen_icon(); ?>
-<h2><?php
-echo esc_html( $title );
-favorite_actions( $current_screen ); ?>
-</h2>
 
 <div id="dashboard-widgets-wrap">
 
Index: wp-admin/edit-form-advanced.php
===================================================================
--- wp-admin/edit-form-advanced.php	(revision 17844)
+++ wp-admin/edit-form-advanced.php	(working copy)
@@ -194,8 +194,6 @@
 ?>
 
 <div class="wrap">
-<?php screen_icon(); ?>
-<h2><?php echo esc_html( $title ); ?></h2>
 <?php if ( $notice ) : ?>
 <div id="notice" class="error"><p><?php echo $notice ?></p></div>
 <?php endif; ?>
Index: wp-admin/admin-header.php
===================================================================
--- wp-admin/admin-header.php	(revision 17844)
+++ wp-admin/admin-header.php	(working copy)
@@ -10,6 +10,10 @@
 if ( ! defined( 'WP_ADMIN' ) )
 	require_once( './admin.php' );
 
+$current_screen->parent_file = $parent_file;
+$current_screen->parent_base = preg_replace('/\?.*$/', '', $parent_file);
+$current_screen->parent_base = str_replace('.php', '', $current_screen->parent_base);
+
 get_admin_page_title();
 $title = esc_html( strip_tags( $title ) );
 
@@ -129,13 +133,18 @@
 	if ( strlen($blog_name) > 30 )
 		$title_class = 'class="long-title"';
 }
+
+$screen_icon = !empty( $current_screen->icon ) ? sanitize_key( $current_screen->icon ) : '';
+screen_icon( $screen_icon );
+
+if ( !empty( $current_screen->title ) )
+	$title = esc_html( strip_tags( $current_screen->title ) );
 ?>
-
-<img id="header-logo" src="<?php echo esc_url( includes_url( 'images/blank.gif' ) ); ?>" alt="" width="16" height="16" />
 <h1 id="site-heading" <?php echo $title_class ?>>
-	<a href="<?php echo trailingslashit( get_bloginfo( 'url' ) ); ?>" title="<?php esc_attr_e('Visit Site') ?>">
-		<span id="site-title"><?php echo $blog_name ?></span>
-	</a>
+	<?php echo $title;
+	if ( ! empty( $current_screen->subtitle ) )
+		echo '<span class="subtitle">' . esc_html( strip_tags( $current_screen->subtitle ) ) . '</span>';
+	?>
 </h1>
 
 <?php
@@ -161,6 +170,12 @@
 $links = array_map( 'trim', $links, array_fill( 0, count( $links ), " |\n\t" ) );
 $links = '<li>' . implode( '</li><li>', $links ) . '</li>';
 
+// Site greeting
+$welcome = home_url();
+$welcome = preg_replace( '#^https?://#', '', $welcome );
+untrailingslashit( $welcome );
+
+$welcome = sprintf( __( 'Welcome to %s' ), '<a href="'. get_home_url() . '">' . esc_html( $welcome ) . '</a>' );
 ?>
 
 <div id="wphead-info">
@@ -171,17 +186,15 @@
 		<ul><?php echo $links; ?></ul>
 	</div></div>
 </div>
+<p><?php echo $welcome; ?></p>
 </div>
 
 </div>
 
 <div id="wpbody">
 <?php
-unset($title_class, $blog_name, $total_update_count, $update_title);
+unset($title_class, $blog_name, $total_update_count, $update_title, $howdy, $welcome);
 
-$current_screen->parent_file = $parent_file;
-$current_screen->parent_base = preg_replace('/\?.*$/', '', $parent_file);
-$current_screen->parent_base = str_replace('.php', '', $current_screen->parent_base);
 ?>
 
 <div id="wpbody-content">
Index: wp-admin/edit.php
===================================================================
--- wp-admin/edit.php	(revision 17844)
+++ wp-admin/edit.php	(working copy)
@@ -186,16 +186,14 @@
 
 add_screen_option( 'per_page', array('label' => $title, 'default' => 20) );
 
+set_screen_attribute( 'title', $title );
+
+if ( isset($_REQUEST['s']) && $_REQUEST['s'] )
+	set_screen_attribute( 'subtitle', sprintf( __( 'Search results for &#8220;%s&#8221;' ), get_search_query() ) );
+
 require_once('./admin-header.php');
 ?>
 <div class="wrap">
-<?php screen_icon(); ?>
-<h2><?php
-echo esc_html( $post_type_object->labels->name );
-favorite_actions( $current_screen );
-if ( isset($_REQUEST['s']) && $_REQUEST['s'] )
-	printf( '<span class="subtitle">' . __('Search results for &#8220;%s&#8221;') . '</span>', get_search_query() ); ?>
-</h2>
 
 <?php
 if ( isset($_REQUEST['posted']) && $_REQUEST['posted'] ) : $_REQUEST['posted'] = (int) $_REQUEST['posted']; ?>
