diff --git wp-admin/css/media.dev.css wp-admin/css/media.dev.css
index 66cd7e1..ad54b20 100644
--- wp-admin/css/media.dev.css
+++ wp-admin/css/media.dev.css
@@ -79,6 +79,7 @@ tr.image-size div.image-size-item {
 	float: left;
 	width: 25%;
 	margin: 0;
+	margin-bottom:6px;
 }
 
 #library-form .progress,
diff --git wp-admin/includes/media.php wp-admin/includes/media.php
index c688b5e..dff8872 100644
--- wp-admin/includes/media.php
+++ wp-admin/includes/media.php
@@ -845,49 +845,56 @@ function image_align_input_fields( $post, $checked = '' ) {
  * @return unknown
  */
 function image_size_input_fields( $post, $check = '' ) {
+	global $_wp_additional_image_sizes;
+	
+	// get a list of the actual pixel dimensions of each possible intermediate version of this image
+	$size_names = array('thumbnail' => __('Thumbnail'), 'medium' => __('Medium'), 'large' => __('Large'), 'full' => __('Full Size'));
 
-		// get a list of the actual pixel dimensions of each possible intermediate version of this image
-		$size_names = array('thumbnail' => __('Thumbnail'), 'medium' => __('Medium'), 'large' => __('Large'), 'full' => __('Full Size'));
-
-		if ( empty($check) )
-			$check = get_user_setting('imgsize', 'medium');
-
-		foreach ( $size_names as $size => $label ) {
-			$downsize = image_downsize($post->ID, $size);
-			$checked = '';
-
-			// is this size selectable?
-			$enabled = ( $downsize[3] || 'full' == $size );
-			$css_id = "image-size-{$size}-{$post->ID}";
-			// if this size is the default but that's not available, don't select it
-			if ( $size == $check ) {
-				if ( $enabled )
-					$checked = " checked='checked'";
-				else
-					$check = '';
-			} elseif ( !$check && $enabled && 'thumbnail' != $size ) {
-				// if $check is not enabled, default to the first available size that's bigger than a thumbnail
-				$check = $size;
-				$checked = " checked='checked'";
-			}
+	foreach( $_wp_additional_image_sizes as $size_name => $size_name_attr ){
+		$size_names[$size_name] = __($size_name_attr['label']);
+	}
+	
+	$size_names = apply_filters( 'image_size_names', $size_names );
+
+	if ( empty($check) )
+		$check = get_user_setting('imgsize', 'medium');
 
-			$html = "<div class='image-size-item'><input type='radio' " . disabled( $enabled, false, false ) . "name='attachments[$post->ID][image-size]' id='{$css_id}' value='{$size}'$checked />";
+	foreach ( $size_names as $size => $label ) {
+		$downsize = image_downsize($post->ID, $size);
+		$checked = '';
 
-			$html .= "<label for='{$css_id}'>$label</label>";
-			// only show the dimensions if that choice is available
+		// is this size selectable?
+		$enabled = ( $downsize[3] || 'full' == $size );
+		$css_id = "image-size-{$size}-{$post->ID}";
+		// if this size is the default but that's not available, don't select it
+		if ( $size == $check ) {
 			if ( $enabled )
-				$html .= " <label for='{$css_id}' class='help'>" . sprintf( "(%d&nbsp;&times;&nbsp;%d)", $downsize[1], $downsize[2] ). "</label>";
+				$checked = " checked='checked'";
+			else
+				$check = '';
+		} elseif ( !$check && $enabled && 'thumbnail' != $size ) {
+			// if $check is not enabled, default to the first available size that's bigger than a thumbnail
+			$check = $size;
+			$checked = " checked='checked'";
+		}
 
-			$html .= '</div>';
+		$html = "<div class='image-size-item'><input type='radio' " . disabled( $enabled, false, false ) . "name='attachments[$post->ID][image-size]' id='{$css_id}' value='{$size}'$checked />";
 
-			$out[] = $html;
-		}
+		$html .= "<label for='{$css_id}'>$label</label>";
+		// only show the dimensions if that choice is available
+		if ( $enabled )
+			$html .= " <label for='{$css_id}' class='help'>" . sprintf( "(%d&nbsp;&times;&nbsp;%d)", $downsize[1], $downsize[2] ). "</label>";
 
-		return array(
-			'label' => __('Size'),
-			'input' => 'html',
-			'html'  => join("\n", $out),
-		);
+		$html .= '</div>';
+
+		$out[] = $html;
+	}
+
+	return array(
+		'label' => __('Size'),
+		'input' => 'html',
+		'html'  => join("\n", $out),
+	);
 }
 
 /**
diff --git wp-content/themes/twentyten/functions.php wp-content/themes/twentyten/functions.php
index 3f236c9..7bf6f2a 100644
--- wp-content/themes/twentyten/functions.php
+++ wp-content/themes/twentyten/functions.php
@@ -119,7 +119,7 @@ function twentyten_setup() {
 	// We'll be using post thumbnails for custom header images on posts and pages.
 	// We want them to be 940 pixels wide by 198 pixels tall.
 	// Larger images will be auto-cropped to fit, smaller ones will be ignored. See header.php.
-	set_post_thumbnail_size( HEADER_IMAGE_WIDTH, HEADER_IMAGE_HEIGHT, true );
+	set_post_thumbnail_size( HEADER_IMAGE_WIDTH, HEADER_IMAGE_HEIGHT, true, __( 'Post Thumbnail' ) );
 
 	// Don't support text inside the header image.
 	if ( ! defined( 'NO_HEADER_TEXT' ) )
diff --git wp-includes/media.php wp-includes/media.php
index 041c4e5..8f7ba23 100644
--- wp-includes/media.php
+++ wp-includes/media.php
@@ -178,16 +178,18 @@ function image_downsize($id, $size = 'medium') {
 /**
  * Registers a new image size
  */
-function add_image_size( $name, $width = 0, $height = 0, $crop = false ) {
+function add_image_size( $name, $width = 0, $height = 0, $crop = false, $label = false ) {
 	global $_wp_additional_image_sizes;
-	$_wp_additional_image_sizes[$name] = array( 'width' => absint( $width ), 'height' => absint( $height ), 'crop' => (bool) $crop );
+	if ( ! $label )
+		$label = $name;
+	$_wp_additional_image_sizes[$name] = array( 'width' => absint( $width ), 'height' => absint( $height ), 'crop' => (bool) $crop, 'label' => $label );
 }
 
 /**
  * Registers an image size for the post thumbnail
  */
-function set_post_thumbnail_size( $width = 0, $height = 0, $crop = false ) {
-	add_image_size( 'post-thumbnail', $width, $height, $crop );
+function set_post_thumbnail_size( $width = 0, $height = 0, $crop = false, $label = false ) {
+	add_image_size( 'post-thumbnail', $width, $height, $crop, $label );
 }
 
 /**
