Index: src/wp-admin/includes/class-wp-media-list-table.php
===================================================================
--- src/wp-admin/includes/class-wp-media-list-table.php	(revision 26243)
+++ src/wp-admin/includes/class-wp-media-list-table.php	(working copy)
@@ -7,7 +7,7 @@
  * @since 3.1.0
  * @access private
  */
-class WP_Media_List_Table extends WP_List_Table {
+class WP_Media_List_Table extends WP_Posts_List_Table {
 
 	function __construct( $args = array() ) {
 		$this->detached = isset( $_REQUEST['detached'] ) || isset( $_REQUEST['find_detached'] );
@@ -174,7 +174,7 @@
 		);
 	}
 
-	function display_rows() {
+	function display_rows( $posts = array(), $level = 0 ) {
 		global $post;
 
 		add_filter( 'the_title','esc_html' );
@@ -398,8 +398,11 @@
 		$actions = array();
 
 		if ( $this->detached ) {
-			if ( current_user_can( 'edit_post', $post->ID ) )
+			if ( current_user_can( 'edit_post', $post->ID ) ) {
 				$actions['edit'] = '<a href="' . get_edit_post_link( $post->ID, true ) . '">' . __( 'Edit' ) . '</a>';
+				$actions['inline hide-if-no-js'] = '<a href="#" class="editinline" title="' . esc_attr( __( 'Edit this item inline' ) ) . '">' . __( 'Quick&nbsp;Edit' ) . '</a>';
+			}
+
 			if ( current_user_can( 'delete_post', $post->ID ) )
 				if ( EMPTY_TRASH_DAYS && MEDIA_TRASH ) {
 					$actions['trash'] = "<a class='submitdelete' href='" . wp_nonce_url( "post.php?action=trash&amp;post=$post->ID", 'trash-post_' . $post->ID ) . "'>" . __( 'Trash' ) . "</a>";
@@ -412,8 +415,10 @@
 				$actions['attach'] = '<a href="#the-list" onclick="findPosts.open( \'media[]\',\''.$post->ID.'\' );return false;" class="hide-if-no-js">'.__( 'Attach' ).'</a>';
 		}
 		else {
-			if ( current_user_can( 'edit_post', $post->ID ) && !$this->is_trash )
+			if ( current_user_can( 'edit_post', $post->ID ) && !$this->is_trash ) {
 				$actions['edit'] = '<a href="' . get_edit_post_link( $post->ID, true ) . '">' . __( 'Edit' ) . '</a>';
+				$actions['inline hide-if-no-js'] = '<a href="#" class="editinline" title="' . esc_attr( __( 'Edit this item inline' ) ) . '">' . __( 'Quick&nbsp;Edit' ) . '</a>';
+			}
 			if ( current_user_can( 'delete_post', $post->ID ) ) {
 				if ( $this->is_trash )
 					$actions['untrash'] = "<a class='submitdelete' href='" . wp_nonce_url( "post.php?action=untrash&amp;post=$post->ID", 'untrash-post_' . $post->ID ) . "'>" . __( 'Restore' ) . "</a>";
Index: src/wp-admin/includes/class-wp-posts-list-table.php
===================================================================
--- src/wp-admin/includes/class-wp-posts-list-table.php	(revision 26244)
+++ src/wp-admin/includes/class-wp-posts-list-table.php	(working copy)
@@ -54,7 +54,7 @@
 		) );
 
 		$post_type = $this->screen->post_type;
-		$post_type_object = get_post_type_object( $post_type );
+		$post_type_object = get_post_type_object( 'attachment' );
 
 		if ( !current_user_can( $post_type_object->cap->edit_others_posts ) ) {
 			$exclude_states = get_post_stati( array( 'show_in_admin_all_list' => false ) );
@@ -81,7 +81,11 @@
 	function prepare_items() {
 		global $avail_post_stati, $wp_query, $per_page, $mode;
 
-		$avail_post_stati = wp_edit_posts_query();
+		if ( 'attachment' == $this->screen->post_type ) {
+			$avail_post_stati = wp_edit_attachments_query();
+		} else {
+			$avail_post_stati = wp_edit_posts_query();
+		}
 
 		$this->hierarchical_display = ( is_post_type_hierarchical( $this->screen->post_type ) && 'menu_order title' == $wp_query->query['orderby'] );
 
Index: src/wp-admin/includes/list-table.php
===================================================================
--- src/wp-admin/includes/list-table.php	(revision 26243)
+++ src/wp-admin/includes/list-table.php	(working copy)
@@ -21,7 +21,7 @@
 	$core_classes = array(
 		//Site Admin
 		'WP_Posts_List_Table' => 'posts',
-		'WP_Media_List_Table' => 'media',
+		'WP_Media_List_Table' => array( 'posts', 'media' ),
 		'WP_Terms_List_Table' => 'terms',
 		'WP_Users_List_Table' => 'users',
 		'WP_Comments_List_Table' => 'comments',
Index: src/wp-admin/includes/screen.php
===================================================================
--- src/wp-admin/includes/screen.php	(revision 26243)
+++ src/wp-admin/includes/screen.php	(working copy)
@@ -506,6 +506,9 @@
 
 				$id = 'edit-' . $taxonomy;
 				break;
+			case 'upload' :
+				$post_type = 'attachment';
+				break;
 		}
 
 		if ( 'network' == $in_admin ) {
Index: src/wp-admin/upload.php
===================================================================
--- src/wp-admin/upload.php	(revision 26243)
+++ src/wp-admin/upload.php	(working copy)
@@ -12,9 +12,13 @@
 if ( !current_user_can('upload_files') )
 	wp_die( __( 'You do not have permission to upload files.' ) );
 
-$wp_list_table = _get_list_table('WP_Media_List_Table');
+$post_type_object = get_post_type_object( 'attachment' );
+
+$wp_list_table = _get_list_table('WP_Posts_List_Table');
 $pagenum = $wp_list_table->get_pagenum();
 
+wp_enqueue_script('inline-edit-post');
+
 // Handle bulk actions
 $doaction = $wp_list_table->current_action();
 
@@ -247,4 +251,9 @@
 </div>
 
 <?php
+if ( $wp_list_table->has_items() )
+	$wp_list_table->inline_edit();
+?>
+
+<?php
 include( ABSPATH . 'wp-admin/admin-footer.php' );
