diff --git src/wp-includes/media.php src/wp-includes/media.php
index 562f283..0a5c97c 100644
--- src/wp-includes/media.php
+++ src/wp-includes/media.php
@@ -983,22 +983,26 @@ function wp_calculate_image_srcset( $image_src, $size_array, $image_meta, $attac
 		return false;
 	}
 
-	// Don't add srcset attributes to (animated) gifs that are inserted at full size.
-	if ( isset( $image_sizes['thumbnail']['mime-type'] ) && 'image/gif' === $image_sizes['thumbnail']['mime-type'] &&
-		false !== strpos( $image_src, $image_meta['file'] ) ) {
-
-		return false;
-	}
-
 	$image_basename = wp_basename( $image_meta['file'] );
 	$image_baseurl = _wp_upload_dir_baseurl();
 
-	// Add full size to the '$image_sizes' array.
-	$image_sizes['full'] = array(
-		'width'  => $image_meta['width'],
-		'height' => $image_meta['height'],
-		'file'   => $image_basename,
-	);
+	/*
+	 * Animated GIFs are a special case since only full size animated GIF files include animation.
+	 * If the original file is a GIF and is the full size, we won't include a 'srcset' attribute.
+	 * However, if the original file is a GIF and is an intermediate size, we exclude the 'full' size
+	 * in the 'srcset' list so it doesn't become animated.
+	 */
+	if ( isset( $image_sizes['thumbnail']['mime-type'] ) && 'image/gif' === $image_sizes['thumbnail']['mime-type'] ) {
+		if ( strpos( $image_src, $image_meta['file'] ) ) {
+			return false;
+		}
+	} else {
+		$image_sizes['full'] = array(
+			'width'  => $image_meta['width'],
+			'height' => $image_meta['height'],
+			'file'   => $image_basename,
+		);
+	}
 
 	// Uploads are (or have been) in year/month sub-directories.
 	if ( $image_basename !== $image_meta['file'] ) {
diff --git tests/phpunit/tests/media.php tests/phpunit/tests/media.php
index 5734f3e..d3e89d2 100644
--- tests/phpunit/tests/media.php
+++ tests/phpunit/tests/media.php
@@ -996,10 +996,15 @@ EOF;
 			)
 		);
 
-		$image_src = 'http://' . WP_TESTS_DOMAIN . '/wp-content/uploads/' . $image_meta['file'];
+		$full_src  = 'http://' . WP_TESTS_DOMAIN . '/wp-content/uploads/' . $image_meta['file'];
+		$large_src = 'http://' . WP_TESTS_DOMAIN . '/wp-content/uploads/' . $image_meta['sizes']['large']['file'];
+
 		// Test with soft resized size array.
 		$size_array = array(900, 450);
 
-		$this->assertFalse( wp_calculate_image_srcset( $image_src, $size_array, $image_meta ) );
+		// Full size GIFs should not return a 'srcset'.
+		$this->assertFalse( wp_calculate_image_srcset( $full_src, $size_array, $image_meta ) );
+		// Intermediate sized GIFs should not include the full size in the 'srcset'.
+		$this->assertFalse( strpos( wp_calculate_image_srcset( $large_src, $size_array, $image_meta ), $full_src ) );
 	}
 }
