diff --git wp-includes/class-wp-image-editor-imagick.php wp-includes/class-wp-image-editor-imagick.php
index d29fefd..d59c27f 100644
--- wp-includes/class-wp-image-editor-imagick.php
+++ wp-includes/class-wp-image-editor-imagick.php
@@ -39,6 +39,10 @@ class WP_Image_Editor_Imagick extends WP_Image_Editor {
 	 */
 	public static function test( $args = array() ) {
 
+		// First, test Imagick's extension and classes.
+		if ( ! extension_loaded( 'imagick' ) || ! class_exists( 'Imagick' ) || ! class_exists( 'ImagickPixel' ) )
+			return false;
+
 		$required_methods = array(
 			'clear',
 			'destroy',
@@ -59,28 +63,14 @@ class WP_Image_Editor_Imagick extends WP_Image_Editor {
 			'flopimage',
 		);
 
-		// Check for requirements
-		if ( ! extension_loaded( 'imagick' ) ||
-			 ! class_exists( 'Imagick' ) ||
-			 ! is_callable( 'Imagick', 'queryFormats' ) ||
-			 ! class_exists( 'ImagickPixel' ) ||
+		// Now, test for deep requirements within Imagick.
+		if ( ! class_exists( 'ImagickPixel' ) ||
 			 ! defined( 'imagick::COMPRESSION_JPEG' ) ||
 			 array_diff( $required_methods, get_class_methods( 'Imagick' ) ) ) {
 
 			return false;
 		}
 
-		/**
-		 * setIteratorIndex is optional unless mime is an animated format.
-		 * Here, we just say no if a user is attempting to
-		 * edit a GIF and setIteratorIndex isn't available.
-		 */
-		if ( ( ! isset( $args['mime_type'] ) || $args['mime_type'] == 'image/gif' ) &&
-			 ! method_exists( 'Imagick', 'setIteratorIndex' ) ) {
-
-			return false;
-		}
-
 		return true;
 	}
 
@@ -99,6 +89,13 @@ class WP_Image_Editor_Imagick extends WP_Image_Editor {
 		if ( ! $imagick_extension )
 			return false;
 
+		/**
+		 * setIteratorIndex is optional unless mime is an animated format.
+		 * Here, we just say no if you are missing it and aren't loading a jpeg.
+		 */
+		if ( ! method_exists( 'Imagick', 'setIteratorIndex' ) && $mime_type != 'image/jpeg' )
+				return false;
+
 		try {
 			return ( (bool) Imagick::queryFormats( $imagick_extension ) );
 		}
