Index: wp-includes/media.php
===================================================================
--- wp-includes/media.php	(revision 17623)
+++ wp-includes/media.php	(working copy)
@@ -1344,8 +1344,8 @@
 		$height = 700;
 
 	return apply_filters( 'embed_defaults', array(
-		'width'  => $width,
-		'height' => $height,
+		'maxwidth'  => $width,
+		'maxheight' => $height,
 	) );
 }
 
Index: wp-includes/class-oembed.php
===================================================================
--- wp-includes/class-oembed.php	(revision 17623)
+++ wp-includes/class-oembed.php	(working copy)
@@ -89,6 +89,8 @@
 				break;
 			}
 		}
+		
+		$args = wp_parse_args( $args, wp_parse_args( parse_url( $url, PHP_URL_QUERY ), array() ) );
 
 		if ( !$provider && $args['discover'] )
 			$provider = $this->discover( $url );
@@ -165,9 +167,8 @@
 	function fetch( $provider, $url, $args = '' ) {
 		$args = wp_parse_args( $args, wp_embed_defaults() );
 
-		$provider = add_query_arg( 'maxwidth', $args['width'], $provider );
-		$provider = add_query_arg( 'maxheight', $args['height'], $provider );
 		$provider = add_query_arg( 'url', urlencode($url), $provider );
+		$provider = add_query_arg( apply_filters( 'oembed_params_before_fetch', $args, $url, $provider ), $provider );
 
 		foreach( array( 'json', 'xml' ) as $format ) {
 			$result = $this->_fetch_with_format( $provider, $format );
