Index: src/wp-includes/class-wp-editor.php
===================================================================
--- src/wp-includes/class-wp-editor.php	(revision 27532)
+++ src/wp-includes/class-wp-editor.php	(working copy)
@@ -333,6 +333,7 @@
 					'preview_styles' => 'font-family font-size font-weight font-style text-decoration text-transform',
 
 					'wpeditimage_disable_captions' => $no_captions,
+					'wpeditimage_no_add_10px_captions' => current_theme_supports( 'no-add-10px-captions' ),
 					'plugins' => implode( ',', $plugins ),
 				);
 
Index: src/wp-includes/media.php
===================================================================
--- src/wp-includes/media.php	(revision 27532)
+++ src/wp-includes/media.php	(working copy)
@@ -765,8 +765,12 @@
 	if ( ! empty( $atts['id'] ) )
 		$atts['id'] = 'id="' . esc_attr( $atts['id'] ) . '" ';
 
-	$caption_width = 10 + $atts['width'];
+	$caption_width = $atts['width'];
 
+	if ( ! current_theme_supports( 'no-add-10px-captions' ) ) {
+		$caption_width += 10;
+	}
+
 	/**
 	 * Filter the width of an image's caption.
 	 *
Index: src/wp-includes/js/tinymce/plugins/wpeditimage/plugin.js
===================================================================
--- src/wp-includes/js/tinymce/plugins/wpeditimage/plugin.js	(revision 27532)
+++ src/wp-includes/js/tinymce/plugins/wpeditimage/plugin.js	(working copy)
@@ -2,7 +2,7 @@
 tinymce.PluginManager.add( 'wpeditimage', function( editor ) {
 	function parseShortcode( content ) {
 		return content.replace( /(?:<p>)?\[(?:wp_)?caption([^\]]+)\]([\s\S]+?)\[\/(?:wp_)?caption\](?:<\/p>)?/g, function( a, b, c ) {
-			var id, cls, w, cap, img, width,
+			var id, cls, w, cap, img, width, style,
 				trim = tinymce.trim;
 
 			id = b.match( /id=['"]([^'"]*)['"] ?/ );
@@ -47,9 +47,14 @@
 				return c;
 			}
 
-			width = parseInt( w, 10 ) + 10;
+			width = parseInt( w, 10 );
 
-			return '<div class="mceTemp"><dl id="'+ id +'" class="wp-caption '+ cls +'" style="width: '+ width +'px">' +
+			if ( ! editor.getParam( 'wpeditimage_no_add_10px_captions' ) ) { 
+				width += 10;
+			}
+			style = ' style="width: '+ width +'px"'; 
+
+			return '<div class="mceTemp"><dl id="'+ id +'" class="wp-caption '+ cls +'"'+ style +'>' +
 				'<dt class="wp-caption-dt">'+ img +'</dt><dd class="wp-caption-dd">'+ cap +'</dd></dl></div>';
 		});
 	}
@@ -189,13 +194,19 @@
 
 			html = createImageAndLink( imageData, 'html' );
 
-			width = imageData.width + 10;
 			className = 'align' + imageData.align;
 
+			width = imageData.width; 
+
+			if ( ! editor.getParam( 'wpeditimage_no_add_10px_captions' ) ) { 
+				width += 10;
+			}
+			style = ' style="width: '+ width +'px"'; 
+
 			//TODO: shouldn't add the id attribute if it isn't an attachment
 
 			// should create a new function for generating the caption markup
-			html =  '<dl id="'+ imageData.attachment_id +'" class="wp-caption '+ className +'" style="width: '+ width +'px">' +
+			html =  '<dl id="'+ imageData.attachment_id +'" class="wp-caption '+ className +'"'+ style +'>' +
 				'<dt class="wp-caption-dt">'+ html + '</dt><dd class="wp-caption-dd">'+ imageData.caption +'</dd></dl>';
 
 			node = editor.dom.create( 'div', { 'class': 'mceTemp' }, html );
@@ -476,7 +487,11 @@
 					node = editor.selection.getNode();
 
 					if ( data.width ) {
-						captionWidth = parseInt( data.width, 10 ) + 10;
+						captionWidth = parseInt( data.width, 10 );
+
+						if ( ! editor.getParam( 'wpeditimage_no_add_10px_captions' ) ) {
+							captionWidth += 10;
+						}
 						captionWidth = ' style="width: '+ captionWidth +'px"';
 					}
 
@@ -540,7 +555,11 @@
 						captionWidth = data.width || imgNode.clientWidth;
 
 						if ( captionWidth ) {
-							captionWidth = parseInt( captionWidth, 10 ) + 10;
+							captionWidth = parseInt( captionWidth, 10 );
+
+							if ( ! editor.getParam( 'wpeditimage_no_add_10px_captions' ) ) {
+								captionWidth += 10;
+							}
 							captionWidth = ' style="width: '+ captionWidth +'px"';
 						}
 
Index: tests/phpunit/tests/media.php
===================================================================
--- tests/phpunit/tests/media.php	(revision 27532)
+++ tests/phpunit/tests/media.php	(working copy)
@@ -108,6 +108,20 @@
 		$this->assertEquals( 1, preg_match_all( "~wp-caption-text.*{$content_preg}~", $result, $_r ) );
 	}
 
+	/**
+	 * @ticket 26642
+	 */
+	function test_new_img_caption_shortcode_new_format_no_inline() {
+		add_theme_support( 'no-add-10px-captions' );
+		$result = img_caption_shortcode(
+			array( 'width' => 20 ),
+			$this->img_content . $this->html_content
+		);
+		$expected = '<div style="width: 20px" class="wp-caption alignnone">' . $this->img_content . '<p class="wp-caption-text">' . $this->html_content . '</p></div>';
+		$this->assertEquals( $expected, $result );
+		remove_theme_support( 'no-add-10px-captions' );
+	}
+
 	function test_add_remove_oembed_provider() {
 		wp_oembed_add_provider( 'http://foo.bar/*', 'http://foo.bar/oembed' );
 		$this->assertTrue( wp_oembed_remove_provider( 'http://foo.bar/*' ) );
