Index: src/wp-admin/css/themes.css
===================================================================
--- src/wp-admin/css/themes.css	(revision 39525)
+++ src/wp-admin/css/themes.css	(working copy)
@@ -949,9 +949,8 @@
 		float: none;
 		clear: both;
 		left: 0;
-		top: 0;
 		right: 0;
-		margin: 10px 0;
+		margin: -5px 0 20px 0;
 		width: 100%;
 		max-width: 280px;
 	}
Index: src/wp-admin/js/theme.js
===================================================================
--- src/wp-admin/js/theme.js	(revision 39525)
+++ src/wp-admin/js/theme.js	(working copy)
@@ -83,7 +83,7 @@
 	},
 
 	// Defines search element container
-	searchContainer: $( '#wpbody h1:first' ),
+	searchContainer: $( '.search-form' ),
 
 	// Search input and view
 	// for current theme collection
@@ -1773,10 +1773,6 @@
 
 	activeClass: 'current',
 
-	// Overwrite search container class to append search
-	// in new location
-	searchContainer: $( '.wp-filter .search-form' ),
-
 	/*
 	 * When users press the "Upload Theme" button, show the upload form in place.
 	 */
Index: src/wp-admin/themes.php
===================================================================
--- src/wp-admin/themes.php	(revision 39525)
+++ src/wp-admin/themes.php	(working copy)
@@ -152,12 +152,17 @@
 ?>
 
 <div class="wrap">
-	<h1><?php esc_html_e( 'Themes' ); ?>
+	<h1 class="wp-heading-inline"><?php esc_html_e( 'Themes' ); ?>
 		<span class="title-count theme-count"><?php echo count( $themes ); ?></span>
+	</h1>
+
 	<?php if ( ! is_multisite() && current_user_can( 'install_themes' ) ) : ?>
 		<a href="<?php echo admin_url( 'theme-install.php' ); ?>" class="hide-if-no-js page-title-action"><?php echo esc_html_x( 'Add New', 'Add new theme' ); ?></a>
 	<?php endif; ?>
-	</h1>
+
+	<span class="search-form"></span>
+
+	<hr class="wp-header-end">
 <?php
 if ( ! validate_current_theme() || isset( $_GET['broken'] ) ) : ?>
 <div id="message1" class="updated notice is-dismissible"><p><?php _e('The active theme is broken. Reverting to the default theme.'); ?></p></div>
