Index: wp-includes/theme.php
===================================================================
--- wp-includes/theme.php	(revision 21350)
+++ wp-includes/theme.php	(working copy)
@@ -1355,6 +1355,9 @@
 				define( 'BACKGROUND_IMAGE', $args[0]['default-image'] );
 
 			break;
+
+		case 'high-density-screens' :
+			add_action( 'after_setup_theme', 'wp_register_2x_image_sizes', 100 );
 	}
 
 	$_wp_theme_features[ $feature ] = $args;
@@ -1695,4 +1698,40 @@
 		}());
 	</script>
 	<?php
+}
+
+/**
+ * Adds an @2x image size for all image sizes registered through add_image_size().
+ *
+ *
+ */
+
+function wp_register_2x_image_sizes() {
+	if ( ! current_theme_supports( 'high-density-screens' ) )
+		return;
+
+	global $_wp_additional_image_sizes;
+	$image_sizes = get_intermediate_image_sizes();
+
+	foreach( $image_sizes as $image_size ) {
+
+		switch ( $image_size ) {
+			case 'large' :
+				add_image_size( 'large@2x', intval( get_option( 'large_size_w' ) ) * 2, intval( get_option( 'large_size_h' ) ) * 2, false );
+				break;
+
+			case 'medium' :
+				add_image_size( 'medium@2x', intval( get_option( 'medium_size_w' ) ) * 2, intval( get_option( 'medium_size_h' ) ) * 2, false );
+				break;
+
+			case 'thumbnail' :
+				add_image_size( 'thumbnail@2x', intval( get_option( 'thumbnail_size_w' ) ) * 2, intval( get_option( 'thumbnail_size_h' ) ) * 2, true );
+				break;
+
+			default :
+				add_image_size( $image_size . '@2x', $_wp_additional_image_sizes[ $image_size ]['width'] * 2, $_wp_additional_image_sizes[ $image_size ]['height'] * 2, $_wp_additional_image_sizes[ $image_size ]['crop'] );
+				break;
+		}
+
+	}
 }
\ No newline at end of file
