Index: wp-admin/includes/image.php
===================================================================
--- wp-admin/includes/image.php	(revision 6367)
+++ wp-admin/includes/image.php	(working copy)
@@ -250,6 +250,8 @@
 	if ( !file_exists( $file ) )
 		return false;
 
+	list(,,$sourceImageType) = getimagesize( $file );
+
 	// exif contains a bunch of data we'll probably never need formatted in ways that are difficult to use.
 	// We'll normalize it and just extract the fields that are likely to be useful.  Fractions and numbers
 	// are converted to floats, dates to unix timestamps, and everything else to strings.
@@ -287,7 +289,7 @@
 	}
 
 	// fetch additional info from exif if available
-	if ( is_callable('exif_read_data') ) {
+	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['FNumber']))
 			$meta['aperture'] = round( wp_exif_frac2dec( $exif['FNumber'] ), 2 );
@@ -304,7 +306,7 @@
 	}
 	// FIXME: try other exif libraries if available
 
-	return apply_filters( 'wp_read_image_metadata', $meta, $file );
+	return apply_filters( 'wp_read_image_metadata', $meta, $file, $sourceImageType );
 
 }
 
Index: wp-includes/compat.php
===================================================================
--- wp-includes/compat.php	(revision 6367)
+++ wp-includes/compat.php	(working copy)
@@ -157,5 +157,10 @@
 if (!defined('IMAGETYPE_PNG'))
     define('IMAGETYPE_PNG', 3);
 
+if (!defined('IMAGETYPE_TIFF_MM'))
+	define('IMAGETYPE_TIFF_MM',7);
 
+if (!defined('IMAGETYPE_TIFF_MM'))
+	define('IMAGETYPE_TIFF_MM',8);
+
 ?>

