Index: wp-includes/formatting.php
===================================================================
--- wp-includes/formatting.php	(revision 4886)
+++ wp-includes/formatting.php	(working copy)
@@ -313,6 +313,25 @@
 	return apply_filters('sanitize_user', $username, $raw_username, $strict);
 }
 
+function generate_title_from_content( $content, $title_length = 100, $ellipsis = '...' ) {
+	$title = '';
+	$content = preg_replace('|\s+|', ' ', strip_tags($content));
+
+	foreach ( explode(' ', $content) as $word ) {
+		if ( (strlen($title) + strlen($word)) > $title_length ) {
+			if ( empty($title) )
+				$title = substr($content, 0, $title_length);
+
+			if ( !empty($title) )
+				$title = trim($title) . $ellipsis;
+
+			break;
+		}
+		$title .= $word . " ";
+	}
+	return trim($title);
+}
+
 function sanitize_title($title, $fallback_title = '') {
 	$title = strip_tags($title);
 	$title = apply_filters('sanitize_title', $title);
Index: wp-includes/post.php
===================================================================
--- wp-includes/post.php	(revision 4886)
+++ wp-includes/post.php	(working copy)
@@ -538,8 +538,11 @@
 	// Create a valid post name.  Drafts are allowed to have an empty
 	// post name.
 	if ( empty($post_name) ) {
-		if ( 'draft' != $post_status )
+		if ( 'draft' != $post_status ) {
+			if ( empty($post_title) )
+				$post_title = generate_title_from_content($post_excerpt . ' ' . $post_content);
 			$post_name = sanitize_title($post_title);
+		}
 	} else {
 		$post_name = sanitize_title($post_name);
 	}

