Index: wp-admin/includes/image.php
===================================================================
--- wp-admin/includes/image.php	(revision 11347)
+++ wp-admin/includes/image.php	(working copy)
@@ -258,17 +258,17 @@
 		if ( !empty($info['APP13']) ) {
 			$iptc = iptcparse($info['APP13']);
 			if ( !empty($iptc['2#110'][0]) ) // credit
-				$meta['credit'] = utf8_encode(trim($iptc['2#110'][0]));
+				$meta['credit'] = wp_iptc_utf8_encode(trim($iptc['2#110'][0]));
 			elseif ( !empty($iptc['2#080'][0]) ) // byline
-				$meta['credit'] = utf8_encode(trim($iptc['2#080'][0]));
+				$meta['credit'] = wp_iptc_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
-				$meta['caption'] = utf8_encode(trim($iptc['2#120'][0]));
+				$meta['caption'] = wp_iptc_utf8_encode(trim($iptc['2#120'][0]));
 			if ( !empty($iptc['2#116'][0]) ) // copyright
-				$meta['copyright'] = utf8_encode(trim($iptc['2#116'][0]));
+				$meta['copyright'] = wp_iptc_utf8_encode(trim($iptc['2#116'][0]));
 			if ( !empty($iptc['2#005'][0]) ) // title
-				$meta['title'] = utf8_encode(trim($iptc['2#005'][0]));
+				$meta['title'] = wp_iptc_utf8_encode(trim($iptc['2#005'][0]));
 		 }
 	}
 
@@ -294,6 +294,30 @@
 }
 
 /**
+ * UTF8 encode IPTC data
+ * 
+ * this is a simple implementation ignoring IPTC documentation:
+ *   a) if the data is valid utf8 then there is nothing to do
+ *   b) if not, assume ISO-8859-1 and encode it to utf-8
+ * 
+ * 
+ * @link http://de2.php.net/manual/en/function.iptcparse.php
+ * @link http://www.iptc.org/std/IIM/4.1/specification/IIMV4.1.pdf
+ * 
+ * @since 2.8.0
+ *
+ * @param string $itpc raw IRB value returned by iptcparse()
+ * @return string utf8 encoded value
+ */
+function wp_iptc_utf8_encode($itpc) {
+	
+	if ( false == seems_utf8($itpc) )
+		$itpc = utf8_encode($itpc);
+	
+	return $itpc;
+}
+
+/**
  * Validate that file is an image.
  *
  * @since 2.5.0
