Index: wp-admin/edit-form-advanced.php
===================================================================
--- wp-admin/edit-form-advanced.php	(revision 14577)
+++ wp-admin/edit-form-advanced.php	(working copy)
@@ -49,6 +49,7 @@
 		// translators: Publish box date format, see http://php.net/date
 		date_i18n( __( 'M j, Y @ G:i' ), strtotime( $post->post_date ) ), esc_url( get_permalink($post_ID) ) ),
 	sprintf( __('Post draft updated. <a target="_blank" href="%s">Preview post</a>'), esc_url( add_query_arg( 'preview', 'true', get_permalink($post_ID) ) ) ),
+	__('You attempted to save or publish an empty post. Provide some content before saving.')
 );
 $messages['page'] = array(
 	'',
@@ -62,6 +63,7 @@
 	sprintf( __('Page submitted. <a target="_blank" href="%s">Preview page</a>'), esc_url( add_query_arg( 'preview', 'true', get_permalink($post_ID) ) ) ),
 	sprintf( __('Page scheduled for: <strong>%1$s</strong>. <a target="_blank" href="%2$s">Preview page</a>'), date_i18n( __( 'M j, Y @ G:i' ), strtotime( $post->post_date ) ), esc_url( get_permalink($post_ID) ) ),
 	sprintf( __('Page draft updated. <a target="_blank" href="%s">Preview page</a>'), esc_url( add_query_arg( 'preview', 'true', get_permalink($post_ID) ) ) ),
+	__('You attempted to save or publish an empty page. Provide some content before saving.')
 );
 
 $message = false;
Index: wp-admin/post.php
===================================================================
--- wp-admin/post.php	(revision 14577)
+++ wp-admin/post.php	(working copy)
@@ -58,23 +58,32 @@
 			$location = 'sidebar.php?a=b';
 	} elseif ( isset($_POST['save']) || isset($_POST['publish']) ) {
 		$status = get_post_status( $post_id );
-
-		if ( isset( $_POST['publish'] ) ) {
-			switch ( $status ) {
-				case 'pending':
-					$message = 8;
-					break;
-				case 'future':
-					$message = 9;
-					break;
-				default:
-					$message = 6;
-			}
+		
+		if ( 'auto-draft' == $status ) {
+			$location = 'post-new.php?message=11';
+			if ( isset( $_POST['post_type'] ) ) {
+				$post_type_object = get_post_type_object($_POST['post_type']);
+				if ( $post_type_object && 'post' != $post_type_object->name )
+					$location = add_query_arg( 'post_type', $post_type_object->name, $location );
+ 			}
 		} else {
+			if ( isset( $_POST['publish'] ) ) {
+				switch ( $status ) {
+					case 'pending':
+						$message = 8;
+						break;
+					case 'future':
+						$message = 9;
+						break;
+					default:
+						$message = 6;
+				}
+			} else {
 				$message = 'draft' == $status ? 10 : 1;
+			}
+
+			$location = add_query_arg( 'message', $message, get_edit_post_link( $post_id, 'url' ) );
 		}
-
-		$location = add_query_arg( 'message', $message, get_edit_post_link( $post_id, 'url' ) );
 	} elseif ( isset($_POST['addmeta']) && $_POST['addmeta'] ) {
 		$location = add_query_arg( 'message', 2, wp_get_referer() );
 		$location = explode('#', $location);
