Index: wp-includes/js/wp-lists.js
===================================================================
--- wp-includes/js/wp-lists.js	(revision 7261)
+++ wp-includes/js/wp-lists.js	(working copy)
@@ -70,11 +70,8 @@
 		s.nonce = wpList.nonce(e,s);
 
 		var es = $('#' + s.element + ' :input').not('[name=_ajax_nonce], [name=_wpnonce], [name=action]');
-		var required = $('#' + s.element + ' .form-required:has(:input[value=""]), #' + s.element + ' .form-required:input[value=""]');
-		if ( required.size() ) {
-			wpAjax.invalidateForm( required );
-			return false;
-		}
+		var valid = wpAjax.validateForm( '#' + s.element );
+		if ( !valid ) { return false; }
 
 		s.data = $.param( $.extend( { _ajax_nonce: s.nonce, action: s.action }, wpAjax.unserialize( cls[4] || '' ) ) );
 		var formData = $.isFunction(es.fieldSerialize) ? es.fieldSerialize() : es.serialize();
Index: wp-includes/js/wp-ajax-response.js
===================================================================
--- wp-includes/js/wp-ajax-response.js	(revision 7261)
+++ wp-includes/js/wp-ajax-response.js	(working copy)
@@ -50,7 +50,8 @@
 		else if ( 0 === x ) { return !re.html('<div class="error"><p>' + this.broken  + '</p></div>'); }
 		return true;
 	},
-	invalidateForm: function( jQ ) {
-		jQ.addClass( 'form-invalid' ).change( function() { jQuery(this).removeClass( 'form-invalid' ); } );
+	validateForm: function( selector ) {
+		selector = jQuery( selector );
+		return !selector.find('.form-required').andSelf().filter('.form-required:has(:input[value=""]), .form-required:input[value=""]').addClass( 'form-invalid' ).change( function() { jQuery(this).removeClass( 'form-invalid' ); } ).size();
 	}
 }, wpAjax || { noPerm: 'You do not have permission to do that.', broken: 'AJAX is teh b0rked.' } );
Index: wp-includes/link-template.php
===================================================================
--- wp-includes/link-template.php	(revision 7261)
+++ wp-includes/link-template.php	(working copy)
@@ -439,21 +439,31 @@
 }
 
 function get_edit_post_link( $id = 0 ) {
-	$post = &get_post( $id );
+	if ( !$post = &get_post( $id ) )
+		return;
 
-	if ( $post->post_type == 'page' ) {
+	switch ( $post->post_type ) :
+	case 'page' :
 		if ( !current_user_can( 'edit_page', $post->ID ) )
 			return;
-
 		$file = 'page';
-	} else {
+		$var  = 'post';
+		break;
+	case 'attachment' :
 		if ( !current_user_can( 'edit_post', $post->ID ) )
 			return;
-
+		$file = 'media';
+		$var  = 'attachment_id';
+		break;
+	default :
+		if ( !current_user_can( 'edit_post', $post->ID ) )
+			return;
 		$file = 'post';
-	}
-
-	return apply_filters( 'get_edit_post_link', get_bloginfo( 'wpurl' ) . '/wp-admin/' . $file . '.php?action=edit&amp;post=' . $post->ID, $post->ID );
+		$var  = 'post';
+		break;
+	endswitch;
+	
+	return apply_filters( 'get_edit_post_link', get_bloginfo( 'wpurl' ) . "/wp-admin/$file.php?action=edit&amp;$var=$post->ID", $post->ID );
 }
 
 function edit_post_link( $link = 'Edit This', $before = '', $after = '' ) {
@@ -462,13 +472,9 @@
 	if ( $post->post_type == 'page' ) {
 		if ( !current_user_can( 'edit_page', $post->ID ) )
 			return;
-
-		$file = 'page';
 	} else {
 		if ( !current_user_can( 'edit_post', $post->ID ) )
 			return;
-
-		$file = 'post';
 	}
 
 	$link = '<a href="' . get_edit_post_link( $post->ID ) . '" title="' . __( 'Edit post' ) . '">' . $link . '</a>';
Index: wp-includes/script-loader.php
===================================================================
--- wp-includes/script-loader.php	(revision 7261)
+++ wp-includes/script-loader.php	(working copy)
@@ -41,13 +41,13 @@
 
 		$this->add( 'prototype', '/wp-includes/js/prototype.js', false, '1.6');
 
-		$this->add( 'wp-ajax-response', '/wp-includes/js/wp-ajax-response.js', array('jquery'), '20080229' . mt_rand() );
+		$this->add( 'wp-ajax-response', '/wp-includes/js/wp-ajax-response.js', array('jquery'), '20080312' );
 		$this->localize( 'wp-ajax-response', 'wpAjax', array(
 			'noPerm' => 'You do not have permission to do that.',
 			'broken' => 'AJAX is teh b0rked.'
 		) );
 
-		$this->add( 'autosave', '/wp-includes/js/autosave.js', array('schedule', 'wp-ajax-response'), '20080221' . mt_rand());
+		$this->add( 'autosave', '/wp-includes/js/autosave.js', array('schedule', 'wp-ajax-response'), '20080312' );
 
 		$this->add( 'wp-ajax', '/wp-includes/js/wp-ajax.js', array('prototype'), '20070306');
 		$this->localize( 'wp-ajax', 'WPAjaxL10n', array(
@@ -57,7 +57,7 @@
 			'whoaText' => __("Slow down, I'm still sending your data!")
 		) );
 
-		$this->add( 'wp-lists', '/wp-includes/js/wp-lists.js', array('wp-ajax-response'), '20080228' . mt_rand());
+		$this->add( 'wp-lists', '/wp-includes/js/wp-lists.js', array('wp-ajax-response'), '20080312' );
 		$this->localize( 'wp-lists', 'wpListL10n', array(
 			'url' => get_option( 'siteurl' ) . '/wp-admin/admin-ajax.php'
 		) );
Index: wp-admin/includes/media.php
===================================================================
--- wp-admin/includes/media.php	(revision 7261)
+++ wp-admin/includes/media.php	(working copy)
@@ -484,6 +484,11 @@
 
 add_filter('attachment_fields_to_edit', 'image_attachment_fields_to_edit', 10, 2);
 
+function media_single_attachment_fields_to_edit( $form_fields, $post ) {
+	unset($form_fields['url'], $form_fields['align'], $form_fields['image-size']);
+	return $form_fields;
+}
+
 function image_attachment_fields_to_save($post, $attachment) {
 	if ( substr($post['post_mime_type'], 0, 5) == 'image' ) {
 		if ( strlen(trim($post['post_title'])) == 0 ) {
@@ -548,7 +553,7 @@
 			'label'      => __('Link URL'),
 			'input'      => 'html',
 			'html'       => "
-				<input type='text' name='attachments[$post->ID][url]' value='" . attribute_escape($file) . "' />
+				<input type='text' name='attachments[$post->ID][url]' value='" . attribute_escape($file) . "' /><br />
 				<button type='button' class='button url-$post->ID' value=''>" . __('None') . "</button>
 				<button type='button' class='button url-$post->ID' value='" . attribute_escape($file) . "'>" . __('File URL') . "</button>
 				<button type='button' class='button url-$post->ID' value='" . attribute_escape($link) . "'>" . __('Post URL') . "</button>
@@ -604,13 +609,17 @@
 		return '';
 
 	foreach ( $attachments as $id => $attachment )
-		if ( $item = get_media_item($id, isset($errors[$id]) ? $errors[$id] : null) )
+		if ( $item = get_media_item( $id, array( 'errors' => isset($errors[$id]) ? $errors[$id] : null) ) )
 			$output .= "\n<div id='media-item-$id' class='media-item child-of-$attachment->post_parent preloaded'><div id='media-upload-error-$id'></div><div class='filename'></div><div class='progress'><div class='bar'></div></div>$item<div class='progress clickmask'></div>\n</div>";
 
 	return $output;
 }
 
-function get_media_item( $attachment_id, $errors = null, $send = true, $delete = true ) {
+function get_media_item( $attachment_id, $args = null ) {
+	$default_args = array( 'errors' => null, 'send' => true, 'delete' => true, 'toggle' => true );
+	$args = wp_parse_args( $args, $default_args );
+	extract( $args, EXTR_SKIP );
+
 	global $post_mime_types;
 	if ( ( $attachment_id = intval($attachment_id) ) && $thumb_url = get_attachment_icon_src( $attachment_id ) )
 		$thumb_url = $thumb_url[0];
@@ -643,20 +652,31 @@
 
 	$form_fields = get_attachment_fields_to_edit($post, $errors);
 
-	$class = empty($errors) ? 'startclosed' : 'startopen';
+	if ( $toggle ) {
+		$class = empty($errors) ? 'startclosed' : 'startopen';
+		$toggle_links = "
+	<a class='toggle describe-toggle-on' href='#'>$toggle_on</a>
+	<a class='toggle describe-toggle-off' href='#'>$toggle_off</a>";
+	} else {
+		$class = 'form-table';
+		$toggle_links = '';
+	}
+
 	$item = "
 	$type
-	<a class='toggle describe-toggle-on' href='#'>$toggle_on</a>
-	<a class='toggle describe-toggle-off' href='#'>$toggle_off</a>
+	$toggle_links
 	<div class='filename new'>$filename</div>
-	<table class='slidetoggle describe $class'><tbody>
+	<table class='slidetoggle describe $class'>
+		<tbody class='media-item-info'>
 		<tr>
-			<td class='A1B1' rowspan='4' colspan='2'><img class='thumbnail' src='$thumb_url' alt='' /></td>
+			<td class='A1B1' rowspan='4'><img class='thumbnail' src='$thumb_url' alt='' /></td>
 			<td>$filename</td>
 		</tr>
-		<tr><td>$post->post_mime_type</td></tr>
+		<td>$post->post_mime_type</td></tr>
 		<tr><td>" . mysql2date($post->post_date, get_option('time_format')) . "</td></tr>
-		<tr><td>" . apply_filters('media_meta', '', $post) . "</tr></td>\n";
+		<tr><td>" . apply_filters('media_meta', '', $post) . "</tr></td>
+		</tbody>
+		<tbody>\n";
 
 	$defaults = array(
 		'input'      => 'text',
@@ -671,7 +691,7 @@
 	if ( $delete )
 		$delete = "<a href='$delete_href' id='del[$attachment_id]' disabled='disabled' class='delete'>" . __('Delete') . "</button>";
 	if ( ( $send || $delete ) && !isset($form_fields['buttons']) )
-		$form_fields['buttons'] = array('tr' => "\t\t<tr class='submit'><td colspan='2'></td><td class='savesend'>$send $delete</td></tr>\n");
+		$form_fields['buttons'] = array('tr' => "\t\t<tr class='submit'><td></td><td class='savesend'>$send $delete</td></tr>\n");
 
 	$hidden_fields = array();
 
@@ -692,8 +712,11 @@
 			continue;
 		}
 
-		$required = $field['required'] ? '<abbr title="required">*</abbr>' : '';
-		$item .= "\t\t<tr class='$id'>\n\t\t\t<td class='label'><label for='$name'>{$field['label']}</label></td>\n\t\t\t<td class='required'>$required</td>\n\t\t\t<td class='field'>";
+		$required = $field['required'] ? '<abbr title="required" class="required">*</abbr>' : '';
+		$class  = $id;
+		$class .= $field['required'] ? ' form-required' : '';
+
+		$item .= "\t\t<tr class='$class'>\n\t\t\t<th valign='top' scope='row' class='label'><label for='$name'><span class='alignleft'>{$field['label']}</span><span class='alignright'>$required</span><br class='clear' /></label></th>\n\t\t\t<td class='field'>";
 		if ( !empty($field[$field['input']]) )
 			$item .= $field[$field['input']];
 		elseif ( $field['input'] == 'textarea' ) {
@@ -701,6 +724,8 @@
 		} else {
 			$item .= "<input type='text' id='$name' name='$name' value='" . wp_specialchars($field['value'], 1) . "' />";
 		}
+		if ( !empty($field['helps']) )
+			$item .= "<p class='help'>" . join( "</p>\n<p class='help'>", array_unique((array) $field['helps']) ) . '</p>';
 		$item .= "</td>\n\t\t</tr>\n";
 
 		$extra_rows = array();
@@ -709,10 +734,6 @@
 			foreach ( array_unique((array) $field['errors']) as $error )
 				$extra_rows['error'][] = $error;
 
-		if ( !empty($field['helps']) )
-			foreach ( array_unique((array) $field['helps']) as $help )
-				$extra_rows['help'][] = $help;
-
 		if ( !empty($field['extra_rows']) )
 			foreach ( $field['extra_rows'] as $class => $rows )
 				foreach ( (array) $rows as $html )
@@ -720,11 +741,11 @@
 
 		foreach ( $extra_rows as $class => $rows )
 			foreach ( $rows as $html )
-				$item .= "\t\t<tr><td colspan='2'></td><td class='$class'>$html</td></tr>\n";
+				$item .= "\t\t<tr><td></td><td class='$class'>$html</td></tr>\n";
 	}
 
 	if ( !empty($form_fields['_final']) )
-		$item .= "\t\t<tr class='final'><td colspan='3'>{$form_fields['_final']}</td></tr>\n";
+		$item .= "\t\t<tr class='final'><td colspan='2'>{$form_fields['_final']}</td></tr>\n";
 	$item .= "\t</table>\n";
 
 	foreach ( $hidden_fields as $name => $value )
@@ -1037,19 +1058,22 @@
 	return '
 	<table class="describe"><tbody>
 		<tr>
-			<td class="label"><label for="insertonly[src]">' . __('Image URL') . '</label></td>
-			<td class="required"><abbr title="required">*</abbr></td>
+			<th valign="top" scope="row" class="label">
+				<span class="alignleft"><label for="insertonly[src]">' . __('Image URL') . '</label></span>
+				<span class="alignright"><abbr title="required" class="required">*</abbr></span>
+			</th>
 			<td class="field"><input id="insertonly[src]" name="insertonly[src]" value="" type="text"></td>
 		</tr>
 		<tr>
-			<td class="label"><label for="insertonly[alt]">' . __('Description') . '</label></td>
-			<td class="required"><abbr title="required">*</abbr></td>
+			<th valign="top" scope="row" class="label">
+				<span class="alignleft"><label for="insertonly[alt]">' . __('Description') . '</label></span>
+				<span class="alignright"><abbr title="required">*</abbr></span>
+			</th>
 			<td class="field"><input id="insertonly[alt]" name="insertonly[alt]" value="" type="text"></td>
 		</tr>
-		<tr><td colspan="2"></td><td class="help">' . __('Alternate text, e.g. "The Mona Lisa"') . '</td></tr>
+		<tr><td></td><td class="help">' . __('Alternate text, e.g. "The Mona Lisa"') . '</td></tr>
 		<tr class="align">
-			<td class="label"><label for="insertonly[align]">' . __('Alignment') . '</label></td>
-			<td class="required"></td>
+			<th valign="top" scope="row" class="label"><label for="insertonly[align]">' . __('Alignment') . '</label></th>
 			<td class="field">
 				<input name="insertonly[align]" id="image-align-none-0" value="none" type="radio">
 				<label for="image-align-none-0" class="align image-align-none-label">' . __('None') . '</label>
@@ -1062,7 +1086,7 @@
 			</td>
 		</tr>
 		<tr>
-			<td colspan="2"></td>
+			<td></td>
 			<td>
 				<input type="submit" class="button" name="insertonlybutton" value="' . attribute_escape(__('Insert into Post')) . '" />
 			</td>
@@ -1075,18 +1099,22 @@
 	return '
 	<table class="describe"><tbody>
 		<tr>
-			<td class="label"><label for="insertonly[href]">' . __('Audio File URL') . '</label></td>
-			<td class="required"><abbr title="required">*</abbr></td>
+			<th valign="top" scope="row" class="label">
+				<span class="alignleft"><label for="insertonly[href]">' . __('Audio File URL') . '</label></span>
+				<span class="alignright"><abbr title="required" class="required">*</abbr></span>
+			</th>
 			<td class="field"><input id="insertonly[href]" name="insertonly[href]" value="" type="text"></td>
 		</tr>
 		<tr>
-			<td class="label"><label for="insertonly[title]">' . __('Title') . '</label></td>
-			<td class="required"><abbr title="required">*</abbr></td>
+			<th valign="top" scope="row" class="label">
+				<span class="alignleft"><label for="insertonly[title]">' . __('Title') . '</label></span>
+				<span class="alignright"><abbr title="required" class="required">*</abbr></span>
+			</th>
 			<td class="field"><input id="insertonly[title]" name="insertonly[title]" value="" type="text"></td>
 		</tr>
-		<tr><td colspan="2"></td><td class="help">' . __('Link text, e.g. "Still Alive by Jonathan Coulton"') . '</td></tr>
+		<tr><td></td><td class="help">' . __('Link text, e.g. "Still Alive by Jonathan Coulton"') . '</td></tr>
 		<tr>
-			<td colspan="2"></td>
+			<td></td>
 			<td>
 				<input type="submit" class="button" name="insertonlybutton" value="' . attribute_escape(__('Insert into Post')) . '" />
 			</td>
@@ -1099,18 +1127,22 @@
 	return '
 	<table class="describe"><tbody>
 		<tr>
-			<td class="label"><label for="insertonly[href]">' . __('Video URL') . '</label></td>
-			<td class="required"><abbr title="required">*</abbr></td>
+			<th valign="top" scope="row" class="label">
+				<span class="alignleft"><label for="insertonly[href]">' . __('Video URL') . '</label></span>
+				<span class="alignright"><abbr title="required" class="required">*</abbr></span>
+			</th>
 			<td class="field"><input id="insertonly[href]" name="insertonly[href]" value="" type="text"></td>
 		</tr>
 		<tr>
-			<td class="label"><label for="insertonly[title]">' . __('Title') . '</label></td>
-			<td class="required"><abbr title="required">*</abbr></td>
+			<th valign="top" scope="row" class="label">
+				<span class="alignleft"><label for="insertonly[title]">' . __('Title') . '</label></span>
+				<span class="alignright"><abbr title="required" class="required">*</abbr></span>
+			</th>
 			<td class="field"><input id="insertonly[title]" name="insertonly[title]" value="" type="text"></td>
 		</tr>
-		<tr><td colspan="2"></td><td class="help">' . __('Link text, e.g. "Lucy on YouTube"') . '</td></tr>
+		<tr><td></td><td class="help">' . __('Link text, e.g. "Lucy on YouTube"') . '</td></tr>
 		<tr>
-			<td colspan="2"></td>
+			<td></td>
 			<td>
 				<input type="submit" class="button" name="insertonlybutton" value="' . attribute_escape(__('Insert into Post')) . '" />
 			</td>
@@ -1123,18 +1155,22 @@
 	return '
 	<table class="describe"><tbody>
 		<tr>
-			<td class="label"><label for="insertonly[href]">' . __('URL') . '</label></td>
-			<td class="required"><abbr title="required">*</abbr></td>
+			<th valign="top" scope="row" class="label">
+				<span class="alignleft"><label for="insertonly[href]">' . __('URL') . '</label></span>
+				<span class="alignright"><abbr title="required" class="required">*</abbr></span>
+			</th>
 			<td class="field"><input id="insertonly[href]" name="insertonly[href]" value="" type="text"></td>
 		</tr>
 		<tr>
-			<td class="label"><label for="insertonly[title]">' . __('Title') . '</label></td>
-			<td class="required"><abbr title="required">*</abbr></td>
+			<th valign="top" scope="row" class="label">
+				<span class="alignleft"><label for="insertonly[title]">' . __('Title') . '</label></span>
+				<span class="alignright"><abbr title="required" class="required">*</abbr></span>
+			</th>
 			<td class="field"><input id="insertonly[title]" name="insertonly[title]" value="" type="text"></td>
 		</tr>
-		<tr><td colspan="2"></td><td class="help">' . __('Link text, e.g. "Ransom Demands (PDF)"') . '</td></tr>
+		<tr><td></td><td class="help">' . __('Link text, e.g. "Ransom Demands (PDF)"') . '</td></tr>
 		<tr>
-			<td colspan="2"></td>
+			<td></td>
 			<td>
 				<input type="submit" class="button" name="insertonlybutton" value="' . attribute_escape(__('Insert into Post')) . '" />
 			</td>
Index: wp-admin/js/common.js
===================================================================
--- wp-admin/js/common.js	(revision 7261)
+++ wp-admin/js/common.js	(working copy)
@@ -4,4 +4,9 @@
 
 	// Reveal
 	jQuery('.wp-no-js-hidden').removeClass( 'wp-no-js-hidden' );
+
+	// Basic form validation
+	if ( ( 'undefined' != typeof wpAjax ) && jQuery.isFunction( wpAjax.validateForm ) ) {
+		jQuery('form').submit( function() { return wpAjax.validateForm( jQuery(this) ); } );
+	}
 });
Index: wp-admin/edit-attachment-rows.php
===================================================================
--- wp-admin/edit-attachment-rows.php	(revision 7261)
+++ wp-admin/edit-attachment-rows.php	(working copy)
@@ -46,7 +46,7 @@
 
 	case 'media':
 		?>
-		<td><strong><!-- TODO <a href="upload.php?action=edit&amp;post=<?php the_ID(); ?>"> --><?php the_title(); ?><!-- </a> --></strong><br />
+		<td><strong><a href="media.php?action=edit&amp;attachment_id=<?php the_ID(); ?>"><?php the_title(); ?></a></strong><br />
 		<?php echo strtoupper(preg_replace('/^.*?\.(\w+)$/', '$1', get_attached_file($post->ID))); ?>
 		<?php do_action('manage_media_media_column', $post->ID); ?>
 		</td>
Index: wp-admin/media.php
===================================================================
--- wp-admin/media.php	(revision 0)
+++ wp-admin/media.php	(revision 0)
@@ -0,0 +1,87 @@
+<?php
+
+require_once('admin.php');
+
+$parent_file = 'edit.php';
+$submenu_file = 'upload.php';
+
+wp_reset_vars(array('action'));
+
+switch( $action ) :
+case 'upload' :
+case 'delete' : break; // stubs
+case 'editattachment' :
+	$errors = media_upload_form_handler();
+	if ( empty($errors) ) {
+		wp_redirect( add_query_arg( 'message', 'updated' ) );
+		exit;
+		break;
+	}
+	// no break
+case 'edit' :
+	$title = __('Edit Media');
+
+	if ( empty($errors) )
+		$errors = null;
+
+	if ( empty( $_GET['attachment_id'] ) ) {
+		wp_redirect('upload.php');
+		exit();
+	}
+	$att_id = (int) $_GET['attachment_id'];
+	$att = get_post($att_id);
+
+	add_filter('attachment_fields_to_edit', 'media_single_attachment_fields_to_edit', 10, 2);
+
+	wp_enqueue_script( 'wp-ajax-response' );
+	add_action('admin_head', 'media_admin_css');
+
+	require( 'admin-header.php' );
+
+	$message = '';
+	$class = '';
+	if ( isset($_GET['message']) ) {
+		switch ( $_GET['message'] ) :
+		case 'updated' :
+			$message = __('Media attachment updated.');
+			$class = 'updated fade';
+			break;
+		endswitch;
+	}
+	if ( $message )
+		echo "<div id='message' class='$class'><p>$message</p></div>\n";
+
+?>
+
+<div class="wrap">
+
+<h2><?php _e( 'Edit Media' ); ?></h2>
+
+<form method="post" action="<?php echo clean_url( remove_query_arg( 'message' ) ); ?>" class="media-upload-form" id="media-single-form">
+<div id="media-items" class="media-single">
+<div id='media-item-<?php echo $att_id; ?>' class='media-item'>
+<?php echo get_media_item( $att_id, array( 'toggle' => false, 'send' => false, 'delete' => false, 'errors' => $errors ) ); ?>
+</div>
+</div>
+
+<p class="submit">
+<input type="submit" class="button" name="save" value="<?php _e('Save Changes'); ?>" />
+<input type="hidden" name="post_id" id="post_id" value="<?php echo $post_id; ?>" />
+<input type="hidden" name="action" value="editattachment" />
+<?php wp_nonce_field('media-form'); ?>
+</p>
+
+
+</div>
+
+<?php
+
+	require( 'admin-footer.php' );
+
+	break;
+endswitch;
+
+wp_redirect( 'upload.php' );
+exit;
+
+?>
Index: wp-admin/css/media.css
===================================================================
--- wp-admin/css/media.css	(revision 7261)
+++ wp-admin/css/media.css	(working copy)
@@ -36,13 +36,16 @@
 	margin: 0 0 0.5em 0;
 }
 
+th { position: relative; }
+
 .media-upload-form label.form-help, td.help {
 	font-style: italic;
 	font-weight: normal;
 }
 
-.media-upload-form p {
-	margin: 0 1em 1em 0;
+.media-upload-form p.help {
+	margin: 0;
+	padding: 0;
 }
 
 .media-upload-form fieldset {
@@ -57,12 +60,8 @@
 .align .field label {
 	display: inline;
 	padding: 0 0 0 28px;
-	margin: 0 0;
+	margin: 0 1em 0 0;
 }
-.align .field input {
-	margin-left: 15px;
-}
-
 .image-align-none-label {
 	background: url(../images/align-none.png) no-repeat center left;
 }
@@ -87,31 +86,13 @@
 	display: inline;
 	margin: 0 1em 0 0;
 }
-tr.image-size td.field {
-	text-align: center;
-}
 .pinkynail {
 	max-width: 40px;
 	max-height: 40px;
 }
 
-#media-items {
-	border-width: 1px;
-	border-style: solid;
-	border-bottom: none;
-	width: 623px;
-}
-.media-item {
-	border-bottom-width: 1px;
-	border-bottom-style: solid;
-	width: 623px;
-	position: relative;
-	min-height: 36px;
-}
 .filename {
-	line-height: 36px;
-	margin-left: 50px;
-	z-index: 2;
+	display: none;
 }
 button.dismiss {
 	position: absolute;
@@ -148,21 +129,26 @@
 	height: 32px;
 	max-width: 40px;
 }
-.describe {
-	border-top-width: 1px;
-	border-top-style: solid;
-	padding: 5px;
-	width: 100%;
-	clear: both;
+
+tbody.media-item-info tr {
+	background-color: transparent;
 }
+tbody.media-item-info th, tbody.media-item-info td {
+	border: none;
+	margin: 0;
+}
+
+.form-table tbody.media-item-info {
+	border: 8px solid #fff;
+}
+
 .describe.startopen, .describe.startclosed {
 	display: none;
 }
-.required abbr {
+abbr.required {
 	text-decoration: none;
 	border: none;
 }
-
 .describe label {
 	display: inline;
 }
@@ -196,13 +182,57 @@
 	z-index: 3;
 	height: 36px;
 }
-tr.align td.field {
-	text-align: center;
-}
 
 .hidden {
 	height: 0px;
 	width: 0px;
 	overflow: hidden;
 	border: none;
+}
+
+/* Specific to Uploader */
+
+#media-upload .media-upload-form p {
+	margin: 0 1em 1em 0;
+}
+#media-upload p.help {
+	font-style: italic;
+	font-weight: normal;
+}
+#media-upload tr.image-size td.field {
+	text-align: center;
+}
+#media-upload #media-items {
+	border-width: 1px;
+	border-style: solid;
+	border-bottom: none;
+	width: 623px;
+}
+
+#media-upload .media-item {
+	border-bottom-width: 1px;
+	border-bottom-style: solid;
+	width: 623px;
+	position: relative;
+	min-height: 36px;
+}
+#media-upload .filename {
+	display: block;
+	line-height: 36px;
+	margin-left: 50px;
+	z-index: 2;
+}
+#media-upload .describe {
+	border-top-width: 1px;
+	border-top-style: solid;
+	padding: 5px;
+	width: 100%;
+	clear: both;
+}
+#media-upload .describe th.label {
+	padding-top: .5em;
+	text-align: left;
+}
+#media-upload tr.align td.field {
+	text-align: center;
 }
\ No newline at end of file
Index: wp-admin/css/colors-classic.css
===================================================================
--- wp-admin/css/colors-classic.css	(revision 7261)
+++ wp-admin/css/colors-classic.css	(working copy)
@@ -533,7 +533,7 @@
 	color: #cfebf6;
 }
 
-div#media-upload-error, .file-error, .required abbr, .widget-control-remove:hover, .delete:hover {
+div#media-upload-error, .file-error, abbr.required, .widget-control-remove:hover, .delete:hover {
 	color: #f00;
 }
 
Index: wp-admin/css/colors-fresh.css
===================================================================
--- wp-admin/css/colors-fresh.css	(revision 7261)
+++ wp-admin/css/colors-fresh.css	(working copy)
@@ -510,7 +510,7 @@
 	color: #555;
 }
 
-div#media-upload-error, .file-error, .required abbr, .widget-control-remove:hover, .delete:hover {
+div#media-upload-error, .file-error, abbr.required, .widget-control-remove:hover, .delete:hover {
 	color: #f00;
 }
 
