Index: wp-admin/user-edit.php
===================================================================
--- wp-admin/user-edit.php	(revision 21421)
+++ wp-admin/user-edit.php	(working copy)
@@ -217,7 +217,7 @@
 if ( !( IS_PROFILE_PAGE && !$user_can_edit ) ) : ?>
 <tr>
 <th scope="row"><?php _e( 'Keyboard Shortcuts' ); ?></th>
-<td><label for="comment_shortcuts"><input type="checkbox" name="comment_shortcuts" id="comment_shortcuts" value="true" <?php if ( !empty($profileuser->comment_shortcuts) ) checked('true', $profileuser->comment_shortcuts); ?> /> <?php _e('Enable keyboard shortcuts for comment moderation.'); ?></label> <?php _e('<a href="http://codex.wordpress.org/Keyboard_Shortcuts" target="_blank">More information</a>'); ?></td>
+<td><label for="comment_shortcuts"><input type="checkbox" name="comment_shortcuts" id="comment_shortcuts" value="true" <?php if ( !empty($profileuser->comment_shortcuts) ) checked('true', $profileuser->comment_shortcuts); ?> /> <?php _e('Enable keyboard shortcuts.'); ?></label> <?php _e('<a href="http://codex.wordpress.org/Keyboard_Shortcuts" target="_blank">More information</a>'); ?></td>
 </tr>
 <?php endif; ?>
 <tr class="show-admin-bar">
Index: wp-includes/class-wp-editor.php
===================================================================
--- wp-includes/class-wp-editor.php	(revision 21421)
+++ wp-includes/class-wp-editor.php	(working copy)
@@ -10,6 +10,7 @@
 
 final class _WP_Editors {
 	public static $mce_locale;
+	public static $custom_shortcuts = false;
 
 	private static $mce_settings = array();
 	private static $qt_settings = array();
@@ -45,6 +46,7 @@
 
 		self::$this_tinymce = ( $set['tinymce'] && user_can_richedit() );
 		self::$this_quicktags = (bool) $set['quicktags'];
+		self::$custom_shortcuts = 'true' == get_user_option( 'comment_shortcuts' );
 
 		if ( self::$this_tinymce )
 			self::$has_tinymce = true;
@@ -317,6 +319,7 @@
 					'paste_remove_spans' => true,
 					'paste_strip_class_attributes' => 'all',
 					'paste_text_use_dialog' => true,
+					'wpCustomShortcuts' => self::$custom_shortcuts,
 					'spellchecker_rpc_url' => self::$baseurl . '/plugins/spellchecker/rpc.php',
 					'extended_valid_elements' => 'article[*],aside[*],audio[*],canvas[*],command[*],datalist[*],details[*],embed[*],figcaption[*],figure[*],footer[*],header[*],hgroup[*],keygen[*],mark[*],meter[*],nav[*],output[*],progress[*],section[*],source[*],summary,time[*],video[*],wbr',
 					'wpeditimage_disable_captions' => $no_captions,
@@ -515,7 +518,8 @@
 		$ref = array(
 			'plugins' => implode( ',', self::$plugins ),
 			'theme' => 'advanced',
-			'language' => self::$mce_locale
+			'language' => self::$mce_locale,
+			'wpCustomShortcuts' => self::$custom_shortcuts
 		);
 
 		$suffix = ( defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ) ? '_src' : '';
Index: wp-includes/js/tinymce/langs/wp-langs-en.js
===================================================================
--- wp-includes/js/tinymce/langs/wp-langs-en.js	(revision 21421)
+++ wp-includes/js/tinymce/langs/wp-langs-en.js	(working copy)
@@ -1,3 +1,6 @@
+(function(){
+var shortcuts = typeof(tinyMCEPreInit) != 'undefined' ? tinyMCEPreInit.ref.wpCustomShortcuts : false;
+
 tinyMCE.addI18n({en:{
 common:{
 edit_confirm:"Do you want to use the WYSIWYG mode for this textarea?",
@@ -170,7 +173,7 @@
 unload_msg:"The changes you made will be lost if you navigate away from this page."
 },
 fullscreen:{
-desc:"Toggle fullscreen mode (Alt + Shift + G)"
+desc: shortcuts ? "Toggle fullscreen mode (Alt + Shift + G)" : "Toggle fullscreen mode"
 },
 media:{
 desc:"Insert / edit embedded media",
@@ -186,7 +189,7 @@
 desc:"Visual control characters on/off."
 },
 spellchecker:{
-desc:"Toggle spellchecker (Alt + Shift + N)",
+desc: shortcuts ? "Toggle spellchecker (Alt + Shift + N)" : "Toggle spellchecker",
 menu:"Spellchecker settings",
 ignore_word:"Ignore word",
 ignore_words:"Ignore all",
@@ -243,20 +246,20 @@
 bold_desc:"Bold (Ctrl + B)",
 italic_desc:"Italic (Ctrl + I)",
 underline_desc:"Underline",
-striketrough_desc:"Strikethrough (Alt + Shift + D)",
-justifyleft_desc:"Align Left (Alt + Shift + L)",
-justifycenter_desc:"Align Center (Alt + Shift + C)",
-justifyright_desc:"Align Right (Alt + Shift + R)",
-justifyfull_desc:"Align Full (Alt + Shift + J)",
-bullist_desc:"Unordered list (Alt + Shift + U)",
-numlist_desc:"Ordered list (Alt + Shift + O)",
+striketrough_desc: shortcuts ? "Strikethrough (Alt + Shift + D)" : "Strikethrough",
+justifyleft_desc: shortcuts ? "Align Left (Alt + Shift + L)" : "Align Left",
+justifycenter_desc: shortcuts ? "Align Center (Alt + Shift + C)" : "Align Center",
+justifyright_desc: shortcuts ? "Align Right (Alt + Shift + R)" : "Align Right",
+justifyfull_desc: shortcuts ? "Align Full (Alt + Shift + J)" : "Align Full",
+bullist_desc: shortcuts ? "Unordered list (Alt + Shift + U)" : "Unordered list",
+numlist_desc: shortcuts ? "Ordered list (Alt + Shift + O)" : "Ordered list",
 outdent_desc:"Outdent",
 indent_desc:"Indent",
 undo_desc:"Undo (Ctrl + Z)",
 redo_desc:"Redo (Ctrl + Y)",
-link_desc:"Insert/edit link (Alt + Shift + A)",
-unlink_desc:"Unlink (Alt + Shift + S)",
-image_desc:"Insert/edit image (Alt + Shift + M)",
+link_desc: shortcuts ? "Insert/edit link (Alt + Shift + A)" : "Insert/edit link",
+unlink_desc: shortcuts ? "Unlink (Alt + Shift + S)" : "Unlink",
+image_desc: shortcuts ? "Insert/edit image (Alt + Shift + M)" : "Insert/edit image",
 cleanup_desc:"Cleanup messy code",
 code_desc:"Edit HTML Source",
 sub_desc:"Subscript",
@@ -274,7 +277,7 @@
 image_props_desc:"Image properties",
 newdocument_desc:"New document",
 help_desc:"Help",
-blockquote_desc:"Blockquote (Alt + Shift + Q)",
+blockquote_desc: shortcuts ? "Blockquote (Alt + Shift + Q)" : "Blockquote",
 clipboard_msg:"Copy/Cut/Paste is not available in Mozilla and Firefox.",
 path:"Path",
 newdocument:"Are you sure you want to clear all contents?",
@@ -452,10 +455,10 @@
 });
 
 tinyMCE.addI18n("en.wordpress",{
-wp_adv_desc:"Show/Hide Kitchen Sink (Alt + Shift + Z)",
-wp_more_desc:"Insert More Tag (Alt + Shift + T)",
-wp_page_desc:"Insert Page break (Alt + Shift + P)",
-wp_help_desc:"Help (Alt + Shift + H)",
+wp_adv_desc: shortcuts ? "Show/Hide Kitchen Sink (Alt + Shift + Z)" : "Show/Hide Kitchen Sink",
+wp_more_desc: shortcuts ? "Insert More Tag (Alt + Shift + T)" : "Insert More Tag",
+wp_page_desc: shortcuts ? "Insert Page break (Alt + Shift + P)" : "Insert Page break",
+wp_help_desc: shortcuts ? "Help (Alt + Shift + H)" : "Help",
 wp_more_alt:"More...",
 wp_page_alt:"Next page...",
 add_media:"Add Media",
@@ -464,7 +467,7 @@
 add_audio:"Add Audio",
 editgallery:"Edit Gallery",
 delgallery:"Delete Gallery",
-wp_fullscreen_desc:"Distraction Free Writing mode (Alt + Shift + W)"
+wp_fullscreen_desc: shortcuts ? "Distraction Free Writing mode (Alt + Shift + W)" : "Distraction Free Writing mode"
 });
 
 tinyMCE.addI18n("en.wpeditimage",{
@@ -502,3 +505,4 @@
 caption:"Caption",
 alt:"Alternate Text"
 });
+})();
Index: wp-includes/js/tinymce/langs/wp-langs.php
===================================================================
--- wp-includes/js/tinymce/langs/wp-langs.php	(revision 21421)
+++ wp-includes/js/tinymce/langs/wp-langs.php	(working copy)
@@ -12,6 +12,7 @@
 }
 
 function wp_mce_translation() {
+	$shortcuts = _WP_Editors::$custom_shortcuts;
 
 	$default = array(
 		'common' => array(
@@ -207,7 +208,7 @@
 		),
 
 		'fullscreen' => array(
-			'desc' => __('Toggle fullscreen mode (Alt + Shift + G)')
+			'desc' => $shortcuts ? __('Toggle fullscreen mode (Alt + Shift + G)') : __('Toggle fullscreen mode')
 		),
 
 		'media' => array(
@@ -228,7 +229,7 @@
 		),
 
 		'spellchecker' => array(
-			'desc' => __('Toggle spellchecker (Alt + Shift + N)'),
+			'desc' => $shortcuts ? __('Toggle spellchecker (Alt + Shift + N)') : __('Toggle spellchecker'),
 			'menu' => __('Spellchecker settings'),
 			'ignore_word' => __('Ignore word'),
 			'ignore_words' => __('Ignore all'),
@@ -289,20 +290,20 @@
 		'bold_desc' => __('Bold (Ctrl + B)'),
 		'italic_desc' => __('Italic (Ctrl + I)'),
 		'underline_desc' => __('Underline'),
-		'striketrough_desc' => __('Strikethrough (Alt + Shift + D)'),
-		'justifyleft_desc' => __('Align Left (Alt + Shift + L)'),
-		'justifycenter_desc' => __('Align Center (Alt + Shift + C)'),
-		'justifyright_desc' => __('Align Right (Alt + Shift + R)'),
-		'justifyfull_desc' => __('Align Full (Alt + Shift + J)'),
-		'bullist_desc' => __('Unordered list (Alt + Shift + U)'),
-		'numlist_desc' => __('Ordered list (Alt + Shift + O)'),
+		'striketrough_desc' => $shortcuts ? __('Strikethrough (Alt + Shift + D)') : __('Strikethrough'),
+		'justifyleft_desc' => $shortcuts ? __('Align Left (Alt + Shift + L)') : __('Align Left'),
+		'justifycenter_desc' => $shortcuts ? __('Align Center (Alt + Shift + C)') : __('Align Center'),
+		'justifyright_desc' => $shortcuts ? __('Align Right (Alt + Shift + R)') : __('Align Right'),
+		'justifyfull_desc' => $shortcuts ? __('Align Full (Alt + Shift + J)') : __('Align Full'),
+		'bullist_desc' => $shortcuts ? __('Unordered list (Alt + Shift + U)') : __('Unordered list'),
+		'numlist_desc' => $shortcuts ? __('Ordered list (Alt + Shift + O)') : __('Ordered list'),
 		'outdent_desc' => __('Outdent'),
 		'indent_desc' => __('Indent'),
 		'undo_desc' => __('Undo (Ctrl + Z)'),
 		'redo_desc' => __('Redo (Ctrl + Y)'),
-		'link_desc' => __('Insert/edit link (Alt + Shift + A)'),
-		'unlink_desc' => __('Unlink (Alt + Shift + S)'),
-		'image_desc' => __('Insert/edit image (Alt + Shift + M)'),
+		'link_desc' => $shortcuts ? __('Insert/edit link (Alt + Shift + A)') : __('Insert/edit link'),
+		'unlink_desc' => $shortcuts ? __('Unlink (Alt + Shift + S)') : __('Unlink'),
+		'image_desc' => $shortcuts ? __('Insert/edit image (Alt + Shift + M)') : __('Insert/edit image'),
 		'cleanup_desc' => __('Cleanup messy code'),
 		'code_desc' => __('Edit HTML Source'),
 		'sub_desc' => __('Subscript'),
@@ -320,7 +321,7 @@
 		'image_props_desc' => __('Image properties'),
 		'newdocument_desc' => __('New document'),
 		'help_desc' => __('Help'),
-		'blockquote_desc' => __('Blockquote (Alt + Shift + Q)'),
+		'blockquote_desc' => $shortcuts ? __('Blockquote (Alt + Shift + Q)') : __('Blockquote'),
 		'clipboard_msg' => __('Copy/Cut/Paste is not available in Mozilla and Firefox.'),
 		'path' => __('Path'),
 		'newdocument' => __('Are you sure you want to clear all contents?'),
@@ -498,10 +499,10 @@
 	);
 
 	$wordpress = array(
-		'wp_adv_desc' => __('Show/Hide Kitchen Sink (Alt + Shift + Z)'),
-		'wp_more_desc' => __('Insert More Tag (Alt + Shift + T)'),
-		'wp_page_desc' => __('Insert Page break (Alt + Shift + P)'),
-		'wp_help_desc' => __('Help (Alt + Shift + H)'),
+		'wp_adv_desc' => $shortcuts ? __('Show/Hide Kitchen Sink (Alt + Shift + Z)') : __('Show/Hide Kitchen Sink'),
+		'wp_more_desc' => $shortcuts ? __('Insert More Tag (Alt + Shift + T)') : __('Insert More Tag'),
+		'wp_page_desc' => $shortcuts ? __('Insert Page break (Alt + Shift + P)') : __('Insert Page break'),
+		'wp_help_desc' => $shortcuts ? __('Help (Alt + Shift + H)') : __('Help'),
 		'wp_more_alt' => __('More...'),
 		'wp_page_alt' => __('Next page...'),
 		'add_media' => __('Add Media'),
@@ -510,7 +511,7 @@
 		'add_audio' => __('Add Audio'),
 		'editgallery' => __('Edit Gallery'),
 		'delgallery' => __('Delete Gallery'),
-		'wp_fullscreen_desc' => __('Distraction Free Writing mode (Alt + Shift + W)')
+		'wp_fullscreen_desc' => $shortcuts ? __('Distraction Free Writing mode (Alt + Shift + W)') : __('Distraction Free Writing mode')
 	);
 
 	$wpeditimage = array(
Index: wp-includes/js/tinymce/plugins/wordpress/editor_plugin_src.js
===================================================================
--- wp-includes/js/tinymce/plugins/wordpress/editor_plugin_src.js	(revision 21421)
+++ wp-includes/js/tinymce/plugins/wordpress/editor_plugin_src.js	(working copy)
@@ -249,34 +249,33 @@
 			t._handleMoreBreak(ed, url);
 
 			// Add custom shortcuts
-			mod_key = 'alt+shift';
+			if ( ed.getParam('wpCustomShortcuts') ) {
+				mod_key = ed.getParam('wpCustomShortcutsModKeys', 'alt+shift');
 
-		//	if ( tinymce.isGecko ) // disable for mow, too many shortcuts conflicts
-		//		mod_key = 'ctrl+alt';
+				ed.addShortcut(mod_key + '+c', 'justifycenter_desc', 'JustifyCenter');
+				ed.addShortcut(mod_key + '+r', 'justifyright_desc', 'JustifyRight');
+				ed.addShortcut(mod_key + '+l', 'justifyleft_desc', 'JustifyLeft');
+				ed.addShortcut(mod_key + '+j', 'justifyfull_desc', 'JustifyFull');
+				ed.addShortcut(mod_key + '+q', 'blockquote_desc', 'mceBlockQuote');
+				ed.addShortcut(mod_key + '+u', 'bullist_desc', 'InsertUnorderedList');
+				ed.addShortcut(mod_key + '+o', 'numlist_desc', 'InsertOrderedList');
+				ed.addShortcut(mod_key + '+n', 'spellchecker.desc', 'mceSpellCheck');
+				ed.addShortcut(mod_key + '+a', 'link_desc', 'WP_Link');
+				ed.addShortcut(mod_key + '+s', 'unlink_desc', 'unlink');
+				ed.addShortcut(mod_key + '+m', 'image_desc', 'WP_Medialib');
+				ed.addShortcut(mod_key + '+z', 'wordpress.wp_adv_desc', 'WP_Adv');
+				ed.addShortcut(mod_key + '+t', 'wordpress.wp_more_desc', 'WP_More');
+				ed.addShortcut(mod_key + '+d', 'striketrough_desc', 'Strikethrough');
+				ed.addShortcut(mod_key + '+h', 'help_desc', 'WP_Help');
+				ed.addShortcut(mod_key + '+p', 'wordpress.wp_page_desc', 'WP_Page');
+				ed.addShortcut('ctrl+s', 'save_desc', function(){if('function'==typeof autosave)autosave();});
 
-			ed.addShortcut(mod_key + '+c', 'justifycenter_desc', 'JustifyCenter');
-			ed.addShortcut(mod_key + '+r', 'justifyright_desc', 'JustifyRight');
-			ed.addShortcut(mod_key + '+l', 'justifyleft_desc', 'JustifyLeft');
-			ed.addShortcut(mod_key + '+j', 'justifyfull_desc', 'JustifyFull');
-			ed.addShortcut(mod_key + '+q', 'blockquote_desc', 'mceBlockQuote');
-			ed.addShortcut(mod_key + '+u', 'bullist_desc', 'InsertUnorderedList');
-			ed.addShortcut(mod_key + '+o', 'numlist_desc', 'InsertOrderedList');
-			ed.addShortcut(mod_key + '+n', 'spellchecker.desc', 'mceSpellCheck');
-			ed.addShortcut(mod_key + '+a', 'link_desc', 'WP_Link');
-			ed.addShortcut(mod_key + '+s', 'unlink_desc', 'unlink');
-			ed.addShortcut(mod_key + '+m', 'image_desc', 'WP_Medialib');
-			ed.addShortcut(mod_key + '+z', 'wordpress.wp_adv_desc', 'WP_Adv');
-			ed.addShortcut(mod_key + '+t', 'wordpress.wp_more_desc', 'WP_More');
-			ed.addShortcut(mod_key + '+d', 'striketrough_desc', 'Strikethrough');
-			ed.addShortcut(mod_key + '+h', 'help_desc', 'WP_Help');
-			ed.addShortcut(mod_key + '+p', 'wordpress.wp_page_desc', 'WP_Page');
-			ed.addShortcut('ctrl+s', 'save_desc', function(){if('function'==typeof autosave)autosave();});
+				if ( /\bwpfullscreen\b/.test(ed.settings.plugins) )
+					ed.addShortcut(mod_key + '+w', 'wordpress.wp_fullscreen_desc', 'wpFullScreen');
+				else if ( /\bfullscreen\b/.test(ed.settings.plugins) )
+					ed.addShortcut(mod_key + '+g', 'fullscreen.desc', 'mceFullScreen');
+			}
 
-			if ( /\bwpfullscreen\b/.test(ed.settings.plugins) )
-				ed.addShortcut(mod_key + '+w', 'wordpress.wp_fullscreen_desc', 'wpFullScreen');
-			else if ( /\bfullscreen\b/.test(ed.settings.plugins) )
-				ed.addShortcut(mod_key + '+g', 'fullscreen.desc', 'mceFullScreen');
-
 			// popup buttons for images and the gallery
 			ed.onInit.add(function(ed) {
 				tinymce.dom.Event.add(ed.getWin(), 'scroll', function(e) {
