Index: wp-admin/includes/image.php
===================================================================
--- wp-admin/includes/image.php	(revision 13185)
+++ wp-admin/includes/image.php	(working copy)
@@ -254,17 +254,24 @@
 		getimagesize($file, $info);
 		if ( !empty($info['APP13']) ) {
 			$iptc = iptcparse($info['APP13']);
+
 			if ( !empty($iptc['2#110'][0]) ) // credit
 				$meta['credit'] = utf8_encode(trim($iptc['2#110'][0]));
-			elseif ( !empty($iptc['2#080'][0]) ) // byline
+			elseif ( !empty($iptc['2#080'][0]) ) // creator / legacy byline
 				$meta['credit'] = utf8_encode(trim($iptc['2#080'][0]));
+
 			if ( !empty($iptc['2#055'][0]) and !empty($iptc['2#060'][0]) ) // created date and time
 				$meta['created_timestamp'] = strtotime($iptc['2#055'][0] . ' ' . $iptc['2#060'][0]);
-			if ( !empty($iptc['2#120'][0]) ) // caption
+
+			if ( !empty($iptc['2#120'][0]) ) // description / legacy caption
 				$meta['caption'] = utf8_encode(trim($iptc['2#120'][0]));
+
 			if ( !empty($iptc['2#116'][0]) ) // copyright
 				$meta['copyright'] = utf8_encode(trim($iptc['2#116'][0]));
-			if ( !empty($iptc['2#005'][0]) ) // title
+
+			if ( !empty($iptc['2#105'][0]) ) // headline, "A brief synopsis of the caption."
+				$meta['title'] = utf8_encode(trim($iptc['2#105'][0]));
+			elseif ( !empty($iptc['2#005'][0]) ) // title, "Many use the Title field to store the filename of the image, though the field may be used in many ways."
 				$meta['title'] = utf8_encode(trim($iptc['2#005'][0]));
 		 }
 	}
@@ -272,6 +279,21 @@
 	// fetch additional info from exif if available
 	if ( is_callable('exif_read_data') && in_array($sourceImageType, apply_filters('wp_read_image_metadata_types', array(IMAGETYPE_JPEG, IMAGETYPE_TIFF_II, IMAGETYPE_TIFF_MM)) ) ) {
 		$exif = @exif_read_data( $file );
+		if (!empty($exif['ImageDescription'])) {
+			if (empty($meta['title']) && strlen($exif['ImageDescription']) < 80) {
+				// In this situation, the title is stored in ImageDescription
+				$meta['title'] = trim($exif['ImageDescription']);
+				if (!empty($exif['COMPUTED']['UserComment'])) {
+					$meta['caption'] = trim($exif['COMPUTED']['UserComment']);
+				}
+			} else {
+				$meta['caption'] = trim($exif['ImageDescription']);
+			}
+		}
+		if (!empty($exif['Artist']))
+			$meta['credit'] = trim( $exif['Artist'] );
+		if (!empty($exif['Copyright']))
+			$meta['copyright'] = trim( $exif['Copyright'] );
 		if (!empty($exif['FNumber']))
 			$meta['aperture'] = round( wp_exif_frac2dec( $exif['FNumber'] ), 2 );
 		if (!empty($exif['Model']))
Index: wp-admin/includes/media.php
===================================================================
--- wp-admin/includes/media.php	(revision 13185)
+++ wp-admin/includes/media.php	(working copy)
@@ -208,7 +208,7 @@
 
 	// use image exif/iptc data for title and caption defaults if possible
 	if ( $image_meta = @wp_read_image_metadata($file) ) {
-		if ( trim($image_meta['title']) )
+		if ( !is_numeric(sanitize_title($image_meta['title'])) )
 			$title = $image_meta['title'];
 		if ( trim($image_meta['caption']) )
 			$content = $image_meta['caption'];
@@ -259,7 +259,7 @@
 
 	// use image exif/iptc data for title and caption defaults if possible
 	if ( $image_meta = @wp_read_image_metadata($file) ) {
-		if ( trim($image_meta['title']) )
+		if ( !is_numeric(sanitize_title($image_meta['title'])) )
 			$title = $image_meta['title'];
 		if ( trim($image_meta['caption']) )
 			$content = $image_meta['caption'];
