Index: wp-admin/includes/media.php
===================================================================
--- wp-admin/includes/media.php	(revision 24425)
+++ wp-admin/includes/media.php	(working copy)
@@ -2359,7 +2359,7 @@
 	<?php
 	elseif ( $attachment_id && 0 === strpos( $post->post_mime_type, 'audio/' ) ):
 
-		echo do_shortcode( '[audio src="' . $att_url . '"]' );
+		echo wp_audio_shortcode( array( 'src' => $att_url ) );
 
 	elseif ( $attachment_id && 0 === strpos( $post->post_mime_type, 'video/' ) ):
 
@@ -2371,13 +2371,16 @@
 		if ( $h && $w < $meta['width'] )
 			$h = round( ( $meta['height'] * $w ) / $meta['width'] );
 
-		$shortcode = sprintf( '[video src="%s"%s%s]',
-			$att_url,
-			empty( $meta['width'] ) ? '' : sprintf( ' width="%d"', $w ),
-			empty( $meta['height'] ) ? '' : sprintf( ' height="%d"', $h )
-		);
-		echo do_shortcode( $shortcode );
+		$attr = array( 'src' => $att_url );
 
+		if ( ! empty( $meta['width' ] ) )
+			$attr['width'] = $w;
+
+		if ( ! empty( $meta['height'] ) )
+			$attr['height'] = $h;
+
+		echo wp_video_shortcode( $attr );
+
 	endif; ?>
 	</div>
 	<div class="wp_attachment_details edit-form-section">
Index: wp-includes/media.php
===================================================================
--- wp-includes/media.php	(revision 24425)
+++ wp-includes/media.php	(working copy)
@@ -2070,7 +2070,16 @@
 		$embed = reset( $embeds );
 		if ( 0 === strpos( $embed, 'http' ) ) {
 			if ( strstr( $embed, home_url() ) ) {
-				$post->format_content[ $cache_key ] = do_shortcode( sprintf( '[%s src="%s"]', $type, $embed ) );
+
+				$format_content = '';
+				$attr = array( 'src' => $embed );
+
+				if ( 'audio' == $type )
+					$format_content = wp_audio_shortcode( $attr );
+				elseif ( 'video' == $type )
+					$format_content = wp_video_shortcode( $attr );
+
+				$post->format_content[ $cache_key ] = $format_content;
 			} else {
 				$post->format_content[ $cache_key ] = $wp_embed->autoembed( $embed );
 			}
@@ -2084,8 +2093,16 @@
 	if ( ! empty( $medias ) ) {
 		$media = reset( $medias );
 		$url = wp_get_attachment_url( $media->ID );
-		$shortcode = sprintf( '[%s src="%s"]', $type, $url );
-		$post->format_content[ $cache_key ] = do_shortcode( $shortcode );
+
+		$format_content = '';
+		$attr = array( 'src' => $url );
+
+		if ( 'audio' == $type )
+			$format_content = wp_audio_shortcode( $attr );
+		elseif ( 'video' == $type )
+			$format_content = wp_video_shortcode( $attr );
+
+		$post->format_content[ $cache_key ] = $format_content;
 		return $post->format_content[ $cache_key ];
 	}
 
@@ -2164,7 +2181,7 @@
 			if ( 'caption' === $shortcode[2] ) {
 				$captions[] = $shortcode[0];
 				if ( $html )
-					$tags[] = do_shortcode( $shortcode[0] );
+					$tags[] = do_shortcode_tag( $shortcode );
 			}
 
 			if ( $limit > 0 && count( $tags ) >= $limit )
@@ -2410,7 +2427,7 @@
 					foreach ( $urls as $url ) {
 						if ( strstr( $shortcode[0], $url ) ) {
 							if ( ! $matched )
-								$matched = do_shortcode( $shortcode[0] );
+								$matched = do_shortcode_tag( $shortcode );
 							// $content = str_replace( $shortcode[0], '', $content, $count );
 						}
 					}
