Index: wp-includes/shortcodes.php
===================================================================
--- wp-includes/shortcodes.php	(revision 20792)
+++ wp-includes/shortcodes.php	(working copy)
@@ -128,6 +128,52 @@
 }
 
 /**
+ * Gets descriptions of all shortcodes.
+ *
+ * @uses $shortcode_tags
+ *
+ * @return array An array containing all shortcodes and description of them and its attributes
+ */
+function get_shortcode_descriptions() {
+	global $shortcode_tags;
+
+	$descriptions = array();
+
+	foreach ( $shortcode_tags as $shortcode => $func ) {
+		$descriptions[$shortcode] = get_shortcode_description( $shortcode );
+	}
+
+	$descriptions = array_filter($descriptions);
+	ksort($descriptions);
+
+	return $descriptions;
+}
+
+/**
+ * Gets description of a shortcode.
+ *
+ * @uses $shortcode_tags
+ *
+ * @param string $shortcode The namn of the shortcode to get the description of
+ * @return array An array containing descriptions of the shortcode and its attributes
+ */
+function get_shortcode_description($shortcode) {
+	global $shortcode_tags;
+
+	if ( !isset( $shortcode_tags[$shortcode] ) ) {
+		return false;
+	}
+
+	$description = array(
+		'shortcode' => $shortcode,
+		'description' => '',
+		'atts' => array(),
+	);
+
+	return apply_filters( 'shortcode_description', $description, $shortcode );
+}
+
+/**
  * Search content for shortcodes and filter shortcodes through their hooks.
  *
  * If there are no shortcode tags defined, then the content will be returned
Index: wp-includes/media.php
===================================================================
--- wp-includes/media.php	(revision 20792)
+++ wp-includes/media.php	(working copy)
@@ -1062,6 +1062,9 @@
 
 		// After a post is saved, cache oEmbed items via AJAX
 		add_action( 'edit_form_advanced', array(&$this, 'maybe_run_ajax_cache') );
+
+		// Describe shortcode in post form
+		add_filter( 'shortcode_description', array(&$this, 'describe_shortcode') );
 	}
 
 	/**
@@ -1097,6 +1100,17 @@
 		return $content;
 	}
 
+	function describe_shortcode( $description ) {
+		if ( isset($description['shortcode']) && $description['shortcode'] == 'embed' ) {
+			$description['description'] = 'Embeds the wrapped URL';
+			$description['atts'] = array(
+				'width' => 'Max width of the embed',
+				'height' => 'Max height of the embed',
+			);
+		}
+		return $description;
+	}
+
 	/**
 	 * If a post/page was saved, then output JavaScript to make
 	 * an AJAX request that will call WP_Embed::cache_oembed().
Index: wp-admin/includes/meta-boxes.php
===================================================================
--- wp-admin/includes/meta-boxes.php	(revision 20792)
+++ wp-admin/includes/meta-boxes.php	(working copy)
@@ -381,6 +381,38 @@
 }
 
 /**
+ * Display descriptions of shortcodes.
+ *
+ * @param object $post
+ */
+function post_shortcodedesc_meta_box($post) {
+	$shortcodes = get_shortcode_descriptions();
+
+	$descriptions = '<ul>';
+	foreach ($shortcodes as $shortcodes) {
+		$descriptions .= "\n\t<li>\n\t\t<strong>[" . esc_html($shortcodes['shortcode']) . "]</strong> ";
+		if (!empty($shortcodes['description'])) {
+			$descriptions .= '- ' . esc_html($shortcodes['description']);
+		}
+		if (!empty($shortcodes['atts'])) {
+			$descriptions .= "\n\t\t<ul>";
+			foreach ($shortcodes['atts'] as $attribute => $attributeDescription) {
+				$descriptions .= "\n\t\t\t<li><strong>" . esc_html($attribute) . "</strong> ";
+				if (!empty($attributeDescription)) {
+					$descriptions .= '- ' . esc_html($attributeDescription);
+				}
+			}
+			$descriptions .= "\n\t\t</ul>";
+		}
+		$descriptions .= "\n\t</li>";
+	}
+	$descriptions .= '</ul>';
+
+	echo $descriptions;
+}
+
+
+/**
  * Display trackback links form fields.
  *
  * @since 2.6.0
Index: wp-admin/edit-form-advanced.php
===================================================================
--- wp-admin/edit-form-advanced.php	(revision 20792)
+++ wp-admin/edit-form-advanced.php	(working copy)
@@ -130,6 +130,9 @@
 if ( post_type_supports($post_type, 'excerpt') )
 	add_meta_box('postexcerpt', __('Excerpt'), 'post_excerpt_meta_box', null, 'normal', 'core');
 
+if ( post_type_supports($post_type, 'editor') )
+	add_meta_box('shortcodedesc', __('Shortcodes'), 'post_shortcodedesc_meta_box', null, 'side', 'core');
+
 if ( post_type_supports($post_type, 'trackbacks') )
 	add_meta_box('trackbacksdiv', __('Send Trackbacks'), 'post_trackback_meta_box', null, 'normal', 'core');
 
