Index: wp-includes/default-filters.php
===================================================================
--- wp-includes/default-filters.php	(revision 23992)
+++ wp-includes/default-filters.php	(working copy)
@@ -131,6 +131,7 @@
 add_filter( 'the_title', 'wptexturize'   );
 add_filter( 'the_title', 'convert_chars' );
 add_filter( 'the_title', 'trim'          );
+add_filter( 'the_title', '_post_formats_title', 10, 2 );
 
 add_filter( 'the_content', 'post_formats_compat', 7 );
 add_filter( 'the_content', 'wptexturize'            );
@@ -250,6 +251,7 @@
 add_action( 'plugins_loaded',             'wp_maybe_load_widgets',                    0    );
 add_action( 'plugins_loaded',             'wp_maybe_load_embeds',                     0    );
 add_action( 'shutdown',                   'wp_ob_end_flush_all',                      1    );
+add_action( 'wp_insert_post_data',        '_post_formats_fix_empty_title',           10, 2 );
 add_action( 'wp_insert_post',             'wp_save_post_revision',                   10, 1 );
 add_action( 'publish_post',               '_publish_post_hook',                       5, 1 );
 add_action( 'transition_post_status',     '_transition_post_status',                  5, 3 );
Index: wp-includes/post-formats.php
===================================================================
--- wp-includes/post-formats.php	(revision 23992)
+++ wp-includes/post-formats.php	(working copy)
@@ -812,3 +812,66 @@
 
 	echo str_replace( ']]>', ']]&gt;', $content );
 }
+
+/**
+ * Don't display post titles for asides and status posts on the front end.
+ *
+ * @since 3.6.0
+ * @access private
+ */
+function _post_formats_title( $title, $post_id ) {
+	if ( is_admin() || ! in_array( get_post_format( $post_id ), array( 'aside', 'status' ) ) )
+		return $title;
+
+	// Return an empty string only if the title is auto-generated.
+	$post = get_post( $post_id );
+	if ( $title == _post_formats_generate_title( $post->post_content, get_post_format( $post_id ) ) )
+		$title = '';
+
+	return $title;
+}
+
+/**
+ * Generate a title from the post content or format.
+ *
+ * @since 3.6.0
+ * @access private
+ */
+function _post_formats_generate_title( $content, $post_format = '' ) {
+	$title = wp_trim_words( strip_shortcodes( $content ), 8, '' );
+
+	if ( empty( $title ) )
+		$title = get_post_format_string( $post_format );
+
+	return $title;
+}
+
+/**
+ * Runs during save_post, fixes empty titles for asides and statuses.
+ *
+ * @since 3.6.0
+ * @access private
+ */
+function _post_formats_fix_empty_title( $data, $postarr ) {
+	if ( 'auto-draft' == $data['post_status'] || ! isset( $postarr['post_format'] ) || ! post_type_supports( $data['post_type'], 'post-formats' ) )
+		return $data;
+
+	$post_id = ( isset( $postarr['ID'] ) ) ? absint( $postarr['ID'] ) : 0;
+	$post_format = ( in_array( $postarr['post_format'], get_post_format_slugs() ) ) ? $postarr['post_format'] : '';
+
+	if ( ! in_array( $post_format, array( 'aside', 'status' ) ) )
+		return $data;
+
+	if ( $data['post_title'] == _post_formats_generate_title( $data['post_content'], $post_format ) )
+		return $data;
+
+	// If updating an existing post, check whether the title was auto-generated.
+	if ( $post_id && $post = get_post( $post_id ) )
+		if ( $post->post_title == $data['post_title'] && $post->post_title == _post_formats_generate_title( $post->post_content, get_post_format( $post->ID ) ) )
+			$data['post_title'] = '';
+
+	if ( empty( $data['post_title'] ) )
+		$data['post_title'] = _post_formats_generate_title( $data['post_content'], $post_format );
+
+	return $data;
+}
\ No newline at end of file
