Index: wp-admin/gears-manifest.php
===================================================================
--- wp-admin/gears-manifest.php	(revision 8311)
+++ wp-admin/gears-manifest.php	(working copy)
@@ -64,7 +64,7 @@
 ?>
 {
 "betaManifestVersion" : 1,
-"version" : "<?php echo $man_version; ?>_20080710",
+"version" : "<?php echo $man_version; ?>_20080710a",
 "entries" : [
 <?php echo $defaults; ?>
 
@@ -131,7 +131,7 @@
 { "url" : "../wp-includes/js/tinymce/themes/advanced/js/link.js?ver=311" },
 { "url" : "../wp-includes/js/tinymce/themes/advanced/js/source_editor.js?ver=311" },
 { "url" : "../wp-includes/js/tinymce/themes/advanced/js/anchor.js?ver=311" },
-{ "url" : "../wp-includes/js/tinymce/plugins/wpeditimage/js/editimage.js?ver=311c" },
+{ "url" : "../wp-includes/js/tinymce/plugins/wpeditimage/js/editimage.js?ver=311d" },
 { "url" : "../wp-includes/js/tinymce/tiny_mce.js?ver=311" },
 { "url" : "../wp-includes/js/tinymce/themes/advanced/editor_template.js?ver=311" },
 { "url" : "../wp-includes/js/tinymce/plugins/inlinepopups/editor_plugin.js?ver=311" },
@@ -148,7 +148,7 @@
 { "url" : "../wp-includes/js/tinymce/plugins/paste/pastetext.htm?ver=311" },
 { "url" : "../wp-includes/js/tinymce/plugins/fullscreen/fullscreen.htm?ver=311" },
 { "url" : "../wp-includes/js/tinymce/plugins/inlinepopups/template.htm?ver=311" },
-{ "url" : "../wp-includes/js/tinymce/plugins/wpeditimage/editimage.html?ver=311c" },
+{ "url" : "../wp-includes/js/tinymce/plugins/wpeditimage/editimage.html?ver=311d" },
 { "url" : "../wp-includes/js/tinymce/wp-mce-help.php?ver=311" },
 
 { "url" : "../wp-includes/js/tinymce/themes/advanced/skins/wp_theme/ui.css?ver=311" },
@@ -161,7 +161,7 @@
 { "url" : "../wp-includes/js/tinymce/plugins/media/css/media.css?ver=311" },
 { "url" : "../wp-includes/js/tinymce/plugins/paste/css/pasteword.css?ver=311" },
 { "url" : "../wp-includes/js/tinymce/plugins/paste/css/blank.css?ver=311" },
-{ "url" : "../wp-includes/js/tinymce/plugins/wpeditimage/css/editimage.css?ver=311c" },
+{ "url" : "../wp-includes/js/tinymce/plugins/wpeditimage/css/editimage.css?ver=311d" },
 { "url" : "../wp-includes/js/tinymce/plugins/wpeditimage/css/editimage-rtl.css?ver=311" },
 { "url" : "../wp-includes/js/tinymce/wordpress.css?ver=311" },
 
Index: wp-admin/includes/media.php
===================================================================
--- wp-admin/includes/media.php	(revision 8311)
+++ wp-admin/includes/media.php	(working copy)
@@ -67,7 +67,7 @@
 
 function image_add_caption( $html, $id, $alt, $title, $align, $url, $size ) {
 
-	if ( empty($alt) ) return $html;
+	if ( empty($alt) || ( defined('CAPTIONS_OFF') && true == CAPTIONS_OFF ) ) return $html;
 	$id = ( 0 < (int) $id ) ? 'attachment_' . $id : '';
 
 	preg_match( '/width="([0-9]+)/', $html, $matches );
@@ -77,8 +77,8 @@
 	$html = preg_replace( '/align[^\s\'"]+\s?/', '', $html );
 	if ( empty($align) ) $align = 'none';
 
-	$shcode = '[wp_caption id="' . $id . '" align="align' . $align
-	. '" width="' . $width . '" caption="' . $alt . '"]' . $html . '[/wp_caption]';
+	$shcode = '[caption id="' . $id . '" align="align' . $align
+	. '" width="' . $width . '" caption="' . $alt . '"]' . $html . '[/caption]';
 
 	return apply_filters( 'image_add_caption_shortcode', $shcode, $html );
 }
@@ -508,9 +508,15 @@
 function image_attachment_fields_to_edit($form_fields, $post) {
 	if ( substr($post->post_mime_type, 0, 5) == 'image' ) {
 		$form_fields['post_title']['required'] = true;
-		$form_fields['post_excerpt']['label'] = __('Caption');
-		$form_fields['post_excerpt']['helps'][] = __('Alternate text, e.g. "The Mona Lisa"');
 
+		if ( defined('CAPTIONS_OFF') && true == CAPTIONS_OFF ) {
+			$form_fields['post_excerpt']['label'] = __('Alternate Text');
+			$form_fields['post_excerpt']['helps'][] = __('Alt text for the image, e.g. "The Mona Lisa"');
+		} else {
+			$form_fields['post_excerpt']['label'] = __('Caption');
+			$form_fields['post_excerpt']['helps'][] = __('Also used as alternate text for the image');
+		}
+
 		$form_fields['post_content']['label'] = __('Description');
 
 		$thumb = wp_get_attachment_thumb_url($post->ID);
@@ -598,13 +604,18 @@
 	$file = wp_get_attachment_url($post->ID);
 	$link = get_attachment_link($post->ID);
 
+	if ( defined('CAPTIONS_OFF') && true == CAPTIONS_OFF )
+		$alt = __('Alternate Text');
+	else
+		$alt = __('Caption');
+
 	$form_fields = array(
 		'post_title'   => array(
 			'label'      => __('Title'),
 			'value'      => $edit_post->post_title,
 		),
 		'post_excerpt' => array(
-			'label'      => __('Caption'),
+			'label'      => $alt,
 			'value'      => $edit_post->post_excerpt,
 		),
 		'post_content' => array(
@@ -1007,7 +1018,9 @@
 
 		if ( f.alt.value ) {
 			alt = f.alt.value.replace(/['"<>]+/g, '');
+<?php if ( ! defined('CAPTIONS_OFF') || true != CAPTIONS_OFF ) { ?>
 			caption = f.alt.value.replace(/'/g, '&#39;').replace(/"/g, '&quot;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
+<?php } ?>
 		}
 
 		cls = caption ? '' : ' class="'+t.align+'"';
@@ -1018,7 +1031,7 @@
 			html = '<a href="'+f.url.value+'">'+html+'</a>';
 
 		if ( caption )
-			html = '[wp_caption id="" align="'+t.align+'" width="'+t.width+'" caption="'+caption+'"]'+html+'[/wp_caption]';
+			html = '[caption id="" align="'+t.align+'" width="'+t.width+'" caption="'+caption+'"]'+html+'[/caption]';
 
 		var win = window.dialogArguments || opener || parent || top;
 		win.send_to_editor(html);
@@ -1262,7 +1275,7 @@
 }
 
 function type_form_image() {
-	return '
+	$form = '
 	<table class="describe"><tbody>
 		<tr>
 			<th valign="top" scope="row" class="label" style="width:120px;">
@@ -1279,7 +1292,20 @@
 			</th>
 			<td class="field"><p><input id="title" name="title" value="" type="text" aria-required="true" /></p></td>
 		</tr>
+';
+	if ( defined('CAPTIONS_OFF') && true == CAPTIONS_OFF ) {
+		$form .= '
+		<tr>
+			<th valign="top" scope="row" class="label">
+				<span class="alignleft"><label for="alt">' . __('Alternate Text') . '</label></span>
+			</th>
+			<td class="field"><input id="alt" name="alt" value="" type="text" aria-required="true" />
+			<p class="help">' . __('Alt text for the image, e.g. "The Mona Lisa"') . '</p></td>
+		</tr>
+';
 
+	} else {
+		$form .= '
 		<tr>
 			<th valign="top" scope="row" class="label">
 				<span class="alignleft"><label for="alt">' . __('Image Caption') . '</label></span>
@@ -1287,7 +1313,9 @@
 			<td class="field"><input id="alt" name="alt" value="" type="text" aria-required="true" />
 			<p class="help">' . __('Also used as alternate text for the image') . '</p></td>
 		</tr>
-
+';
+	}
+		$form .= '
 		<tr class="align">
 			<th valign="top" scope="row" class="label"><p><label for="align">' . __('Alignment') . '</label></p></th>
 			<td class="field">
@@ -1321,6 +1349,8 @@
 		</tr>
 	</tbody></table>
 ';
+
+	return $form;
 }
 
 function type_form_audio() {
Index: wp-admin/js/editor.js
===================================================================
--- wp-admin/js/editor.js	(revision 8311)
+++ wp-admin/js/editor.js	(working copy)
@@ -52,8 +52,8 @@
         // Fix some block element newline issues
         content = content.replace(new RegExp('\\s*<div', 'mg'), '\n<div');
         content = content.replace(new RegExp('</div>\\s*', 'mg'), '</div>\n');
-		content = content.replace(new RegExp('\\s*\\[wp_caption([^\\[]+)\\[/wp_caption\\]\\s*', 'gi'), '\n\n[wp_caption$1[/wp_caption]\n\n');
-		content = content.replace(new RegExp('wp_caption\\]\\n\\n+\\[wp_caption', 'g'), 'wp_caption]\n\n[wp_caption');
+		content = content.replace(new RegExp('\\s*\\[caption([^\\[]+)\\[/caption\\]\\s*', 'gi'), '\n\n[caption$1[/caption]\n\n');
+		content = content.replace(new RegExp('caption\\]\\n\\n+\\[caption', 'g'), 'caption]\n\n[caption');
 
         var blocklist2 = 'blockquote|ul|ol|li|table|thead|tr|th|td|h[1-6]|pre';
         content = content.replace(new RegExp('\\s*<(('+blocklist2+') ?[^>]*)\\s*>', 'mg'), '\n<$1>');
@@ -166,7 +166,7 @@
         pee = pee.replace(new RegExp('\\s*\\n', 'gi'), "<br />\n");
         pee = pee.replace(new RegExp('(</?(?:'+blocklist+')[^>]*>)\\s*<br />', 'gi'), "$1");
         pee = pee.replace(new RegExp('<br />(\\s*</?(?:p|li|div|dl|dd|dt|th|pre|td|ul|ol)>)', 'gi'), '$1');
-        pee = pee.replace(new RegExp('(?:<p>|<br ?/?>)*\\s*\\[wp_caption([^\\[]+)\\[/wp_caption\\]\\s*(?:</p>|<br ?/?>)*', 'gi'), '[wp_caption$1[/wp_caption]');
+        pee = pee.replace(new RegExp('(?:<p>|<br ?/?>)*\\s*\\[caption([^\\[]+)\\[/caption\\]\\s*(?:</p>|<br ?/?>)*', 'gi'), '[caption$1[/caption]');
         // pee = pee.replace(new RegExp('^((?:&nbsp;)*)\\s', 'mg'), '$1&nbsp;');
 
         // Fix the pre|script tags	   
Index: wp-admin/js/media-upload.js
===================================================================
--- wp-admin/js/media-upload.js	(revision 8311)
+++ wp-admin/js/media-upload.js	(working copy)
@@ -5,7 +5,7 @@
 		if (tinymce.isIE)
 			ed.selection.moveToBookmark(tinymce.EditorManager.activeEditor.windowManager.bookmark);
 
-		if ( h.indexOf('[wp_caption') != -1 )
+		if ( h.indexOf('[caption') != -1 )
 			h = ed.plugins.wpeditimage._do_shcode(h);
 		
 		ed.execCommand('mceInsertContent', false, h);
Index: wp-includes/js/tinymce/plugins/wpeditimage/editimage.html
===================================================================
--- wp-includes/js/tinymce/plugins/wpeditimage/editimage.html	(revision 8311)
+++ wp-includes/js/tinymce/plugins/wpeditimage/editimage.html	(working copy)
@@ -4,10 +4,10 @@
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 <title></title>
 
-<script type="text/javascript" src="js/editimage.js?ver=311c"></script>
+<script type="text/javascript" src="js/editimage.js?ver=311d"></script>
 <script type="text/javascript" src="../../utils/form_utils.js?ver=311"></script>
 
-<link rel="stylesheet" href="css/editimage.css?ver=311c" type="text/css" media="all" />
+<link rel="stylesheet" href="css/editimage.css?ver=311d" type="text/css" media="all" />
 <link rel="stylesheet" href="../../../../../wp-admin/css/media.css?ver=2.6-beta3" type="text/css" media="all" />
 <script type="text/javascript">
 if ( 'rtl' == tinyMCEPopup.editor.getParam('directionality','') )
@@ -85,7 +85,7 @@
 			</td>
 		</tr>
 
-		<tr>
+		<tr id="cap_field">
 			<th valign="top" scope="row" class="label">
 				<label for="img_cap">
 				<span class="alignleft">{#wpeditimage.caption}</span>
Index: wp-includes/js/tinymce/plugins/wpeditimage/editor_plugin.js
===================================================================
--- wp-includes/js/tinymce/plugins/wpeditimage/editor_plugin.js	(revision 8311)
+++ wp-includes/js/tinymce/plugins/wpeditimage/editor_plugin.js	(working copy)
@@ -87,7 +87,7 @@
 		},
 
 		_do_shcode : function(co) {
-			return co.replace(/\[wp_caption([^\]]+)\]([\s\S]+?)\[\/wp_caption\][\s\u00a0]*/g, function(a,b,c){
+			return co.replace(/\[(?:wp_)?caption([^\]]+)\]([\s\S]+?)\[\/(?:wp_)?caption\][\s\u00a0]*/g, function(a,b,c){
 				b = b.replace(/\\'|\\&#39;|\\&#039;/g, '&#39;').replace(/\\"|\\&quot;/g, '&quot;');
 				c = c.replace(/\\&#39;|\\&#039;/g, '&#39;').replace(/\\&quot;/g, '&quot;');
 				var id = b.match(/id=['"]([^'"]+)/i), cls = b.match(/align=['"]([^'"]+)/i);
@@ -101,8 +101,8 @@
 				
 				var div_cls = (cls == 'aligncenter') ? 'mceTemp mceIEcenter' : 'mceTemp';
 
-				return '<div class="'+div_cls+'"><dl id="'+id+'" class="wp_caption '+cls+'" style="width: '+(10+parseInt(w))+
-				'px"><dt class="wp_caption_dt">'+c+'</dt><dd class="wp_caption_dd">'+cap+'</dd></dl></div>';
+				return '<div class="'+div_cls+'"><dl id="'+id+'" class="wp-caption '+cls+'" style="width: '+(10+parseInt(w))+
+				'px"><dt class="wp-caption-dt">'+c+'</dt><dd class="wp-caption-dd">'+cap+'</dd></dl></div>';
 			});
 		},
 
@@ -119,7 +119,7 @@
 				cls = cls.match(/align[^ '"]+/) || 'alignnone';
 				cap = cap.replace(/<\S[^<>]*>/gi, '').replace(/'/g, '&#39;').replace(/"/g, '&quot;');
 
-				return '[wp_caption id="'+id+'" align="'+cls+'" width="'+w+'" caption="'+cap+'"]'+c+'[/wp_caption]';
+				return '[caption id="'+id+'" align="'+cls+'" width="'+w+'" caption="'+cap+'"]'+c+'[/caption]';
 			});
 		},
 
Index: wp-includes/js/tinymce/plugins/wpeditimage/js/editimage.js
===================================================================
--- wp-includes/js/tinymce/plugins/wpeditimage/js/editimage.js	(revision 8311)
+++ wp-includes/js/tinymce/plugins/wpeditimage/js/editimage.js	(working copy)
@@ -247,6 +247,10 @@
 	setup : function() {
 		var t = this, h, c, el, id, link, fname, f = document.forms[0], ed = tinyMCEPopup.editor, d = t.I('img_demo'), dom = tinyMCEPopup.dom, DL, caption = null;
 		document.dir = tinyMCEPopup.editor.getParam('directionality','');
+
+		if ( ! tinyMCEPopup.editor.getParam('wpeditimage_do_captions', true) )
+			t.I('cap_field').style.display = 'none';
+
 		tinyMCEPopup.restoreSelection();
 		el = ed.selection.getNode();
 		if (el.nodeName != 'IMG') return;
@@ -265,7 +269,7 @@
 			}
 
 			tinymce.each(DL.childNodes, function(e) {
-				if ( e.nodeName == 'DD' && dom.hasClass(e, 'wp_caption_dd') ) {
+				if ( e.nodeName == 'DD' && dom.hasClass(e, 'wp-caption-dd') ) {
 					caption = e.innerHTML;
 					return;
 				}
@@ -423,14 +427,14 @@
 
 			if ( DL ) {
 				ed.dom.setAttribs(DL, {
-					'class' : 'wp_caption '+t.align,
+					'class' : 'wp-caption '+t.align,
 					style : 'width: '+cap_width+'px;'
 				});
 
 				if ( DIV )
 					ed.dom.setAttrib(DIV, 'class', div_cls);
 
-				if ( (DT = ed.dom.getParent(el, 'dt')) && (DD = DT.nextSibling) && ed.dom.hasClass(DD, 'wp_caption_dd') )
+				if ( (DT = ed.dom.getParent(el, 'dt')) && (DD = DT.nextSibling) && ed.dom.hasClass(DD, 'wp-caption-dd') )
 					ed.dom.setHTML(DD, f.img_cap.value);
 
 			} else {
@@ -448,8 +452,8 @@
 					}
 				} else html = ed.dom.getOuterHTML(el);
 
-				html = '<dl id="'+cap_id+'" class="wp_caption '+t.align+'" style="width: '+cap_width+
-				'px"><dt class="wp_caption_dt">'+html+'</dt><dd class="wp_caption_dd">'+f.img_cap.value+'</dd></dl>';
+				html = '<dl id="'+cap_id+'" class="wp-caption '+t.align+'" style="width: '+cap_width+
+				'px"><dt class="wp-caption-dt">'+html+'</dt><dd class="wp-caption-dd">'+f.img_cap.value+'</dd></dl>';
 
 				cap = ed.dom.create('div', {'class': div_cls}, html);
 
Index: wp-includes/js/tinymce/tiny_mce_config.php
===================================================================
--- wp-includes/js/tinymce/tiny_mce_config.php	(revision 8311)
+++ wp-includes/js/tinymce/tiny_mce_config.php	(working copy)
@@ -130,6 +130,8 @@
 $mce_buttons_4 = apply_filters('mce_buttons_4', array());
 $mce_buttons_4 = implode($mce_buttons_4, ',');
 
+$do_captions = ( defined('CAPTIONS_OFF') && true == CAPTIONS_OFF ) ? false : true;
+
 // TinyMCE init settings
 $initArray = array (
 	'mode' => 'none',
@@ -163,6 +165,7 @@
 	'tab_focus' => ':next',
 	'content_css' => "$mce_css",
 	'save_callback' => 'switchEditors.saveCallback',
+	'wpeditimage_do_captions' => $do_captions,
 	'plugins' => "$plugins",
 	// pass-through the settings for compression and caching, so they can be changed with "tiny_mce_before_init"
 	'disk_cache' => true,
@@ -222,7 +225,7 @@
 // Setup cache info
 if ( $disk_cache ) {
 
-	$cacheKey = apply_filters('tiny_mce_version', '20080709');
+	$cacheKey = apply_filters('tiny_mce_version', '20080710');
 
 	foreach ( $initArray as $v )
 		$cacheKey .= $v;
Index: wp-includes/js/tinymce/wordpress.css
===================================================================
--- wp-includes/js/tinymce/wordpress.css	(revision 8311)
+++ wp-includes/js/tinymce/wordpress.css	(working copy)
@@ -15,7 +15,7 @@
 	float: right;
 }
 
-.wp_caption {
+.wp-caption {
 	border: 1px solid #ddd;
 	text-align: center;
 	background-color: #f3f3f3;
@@ -27,13 +27,13 @@
 	border-radius: 3px;
 }
 
-.wp_caption img {
+.wp-caption img {
 	margin: 0;
 	padding: 0;
 	border: 0 none;
 }
 
-.wp_caption_dd {
+.wp-caption-dd {
 	font-size: 11px;
 	line-height: 17px;
 	padding: 0 4px 5px;
Index: wp-includes/media.php
===================================================================
--- wp-includes/media.php	(revision 8311)
+++ wp-includes/media.php	(working copy)
@@ -351,9 +351,13 @@
 }
 
 add_shortcode('wp_caption', 'img_caption_shortcode');
+add_shortcode('caption', 'img_caption_shortcode');
 
 function img_caption_shortcode($attr, $content = null) {
-	
+
+	if ( defined('CAPTIONS_OFF') && true == CAPTIONS_OFF )
+		return $content;
+
 	// Allow plugins/themes to override the default caption template.
 	$output = apply_filters('img_caption_shortcode', '', $attr, $content);
 	if ( $output != '' )
Index: wp-includes/script-loader.php
===================================================================
--- wp-includes/script-loader.php	(revision 8311)
+++ wp-includes/script-loader.php	(working copy)
@@ -34,10 +34,10 @@
 	$visual_editor = apply_filters('visual_editor', array('tiny_mce'));
 	$scripts->add( 'editor', false, $visual_editor, '20080321' );
 
-	$scripts->add( 'editor_functions', '/wp-admin/js/editor.js', false, '20080706' );
+	$scripts->add( 'editor_functions', '/wp-admin/js/editor.js', false, '20080710' );
 
 	// Modify this version when tinyMCE plugins are changed.
-	$mce_version = apply_filters('tiny_mce_version', '20080709');
+	$mce_version = apply_filters('tiny_mce_version', '20080710');
 	$scripts->add( 'tiny_mce', '/wp-includes/js/tinymce/tiny_mce_config.php', array('editor_functions'), $mce_version );
 
 	$scripts->add( 'prototype', '/wp-includes/js/prototype.js', false, '1.6');
@@ -159,7 +159,7 @@
 			'edit' => __('Edit'),
 		) );
 		$scripts->add( 'admin-gallery', '/wp-admin/js/gallery.js', array( 'jquery-ui-sortable' ), '20080709' );
-		$scripts->add( 'media-upload', '/wp-admin/js/media-upload.js', array( 'thickbox' ), '20080702' );
+		$scripts->add( 'media-upload', '/wp-admin/js/media-upload.js', array( 'thickbox' ), '20080710' );
 		$scripts->localize( 'upload', 'uploadL10n', array(
 			'browseTitle' => attribute_escape(__('Browse your files')),
 			'back' => __('&laquo; Back'),
